繁体   English   中英

Javascript - 设置浏览器 Cookie

[英]Javascript - Set a Browser Cookie

当用户点击一个按钮时,它会将他们带到一个链接,但在他们 go 到该链接之前,cookie 需要设置为英语 (EN) 或法语 (FR)。 我在这里有一个例子: http://www.quirksmode.org/js/cookies.html

但出于某种原因,它没有读取 cookie,我不确定我哪里出错了。 这就是我所拥有的:

<!DOCTYPE html>
<html>
<body>

<p>This is for the Browser Cookies.</p>

<button onclick="EN_Cookie()">English Link</button>  <button onclick="FR_Cookie()">French Link</button>


<script>
function EN_Cookie() {  
    setCookie("SMDCookie","EN",7);
    //location.href = 'https://google.com';
}

function FR_Cookie() {
   setCookie("SMDCookie","FR",7);
   //location.href = 'https://google.com';
}

function setCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

</script>

</body>
</html>

有什么建议么??

我查看了您的代码,发现您设置的 cookie function 是正确的。 可能是你的 getCookie 不工作,我正在分享 get cookie function:

  function getCookie(cname) {
    var name = cname + "=";
    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);
      }
      if (c.indexOf(name) == 0) {
       return c.substring(name.length, c.length);
      }
     }
   return "";
 }

以下是可用于创建和检索 cookies 的函数

function createCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

复制自How do I create and read a value from cookie with javascript?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM