【问题标题】:Create URL with cookies from a different page and redirect with JS使用来自不同页面的 cookie 创建 URL 并使用 JS 重定向
【发布时间】:2015-03-18 21:42:09
【问题描述】:

我是 JS 的新手,但由于本网站用户的反馈,我设法创建了代码。先解释一下代码:

目标是基于两个页面(A 和 B)创建 URL 链接。

页面 A 使用隐藏表单加载 cookie。此页面还包含一个重定向到页面 B 的链接:

// CODE FROM SOURCE PAGE A //
<a href="to_page_b">TO PAGE B</a>

<form name="sender">
<input type="hidden" name="message" size="30" value="customvalue"/>
</form>
<script type="text/javascript">
function setCookie(value) {
    document.cookie = "cookie-msg-test=" + value + "; path=/";
    return true;
}
function updateMessage() {
    var t = document.forms['sender'].elements['message'];
    setCookie(t.value);
    setTimeout(updateMessage, 100);
}
updateMessage();
</script>

页面 B 具有分配了不同值的链接列表。使用 JS 从页面 A 调用 cookie 并将其分配给变量。当我们单击链接时,将值分配给另一个变量。 JS 使用这两个变量创建新的 URL 并重定向。

// CODE FOR DESTINATION PAGE B //
<a id="LNK" href="#" value="value_for_url" onclick="clickLink(this)">CUSTOM REDIRECTION</a>
<a id="LNK" href="#" value="other_value_for_other_url" onclick="clickLink(this)">OTHER CUSTOM REDIRECTION</a>
// RECEIVE THE COOKIE FROM SOURCE PAGE A //
<script type="text/javascript">
function getCookie() {
    var cname = "cookie-msg-test=";
    var ca = document.cookie.split(';');
    for (var i=0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(cname) == 0) {
            return c.substring(cname.length, c.length);
        }
    }
    return null;
}
// PASTE THE COOKIE AND THE VALUE OF PAGE A AND REDIRECT //
function clickLink(a) {
    var url_part_from_a = a.getAttribute('value');
    var url_part_from_cookie = getCookie();
    window.location.assign("http://domain/"+url_part_from_a+url_part_from_cookie)
       return false;
    }
</script>

由于不同的页面 A 具有不同的 cookie,我会修改页面 A 的代码,以便在您单击链接时将值分配给 cookie,而不是之前。

有什么想法吗?提前致谢

【问题讨论】:

    标签: javascript url redirect cookies


    【解决方案1】:

    解决了!

    页面 A 的代码:

    <html>
    <body>
    <a href="http://page_B.html" value="custom_code_a" onclick="clickLink(this)">LINK TO PAGE B</a>
    <script type="text/javascript">
        function clickLink(a) {
            var url1 = a.getAttribute('value');
            document.cookie = 'cookiename=' +url1+'; expires=Wed, 1 Jan 2070 13:47:11 UTC; path=/';
        }
    </script>
    </body>
    </html>
    

    B 页代码

    <html>
    <body>
    <a id="LNK" href="#" value="custom_code_b" onclick="clickLink(this)">JS REDIRECT</a>    
    <script type="text/javascript">
        function getCookie(cookiename)
          {
            var re = new RegExp(rgcookie + "=([^;]+)");
            var value = re.exec(document.cookie);
            return (value != null) ? unescape(value[1]) : null;
          }
        var url1 = getCookie("cookiename");
        function clickLink(a) {
        var url2 = a.getAttribute('value');
        window.location.assign("http://domain/"+url1+url2);
        }
    </script>
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2023-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多