簡體   English   中英

使用其他頁面的Cookie創建URL,然后使用JS重定向

[英]Create URL with cookies from a different page and redirect with JS

我是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,而不是之前。

有任何想法嗎? 提前致謝

解決了!

網頁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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM