在Javascript中保存cookie

时间:2016-09-22 12:42:55

标签: javascript cookies

嘿我正在尝试保存 cookie ,然后在重新加载时再次加载/读取它。但每当我重新加载时,我都会收到错误消息myCookie is undefined。有人可以帮助我。

var myCookie

window.onload = function () {

  console.log(myCookie);
  var a = document.getElementById("style1");
  if (myCookie == undefined) {
    console.log("new");
  var myCookie = document.cookie = "common.css";  
  } else {
    console.log("old");
  }
   a.href = myCookie;
}

function change()
{

    var a = document.getElementById("style1");
    if(myCookie=="common.css")
    {
      myCookie  = document.cookie = "common2.css";
    }else{
      myCookie  = document.cookie = "common.css";
    }
    a.href = myCookie;
}

2 个答案:

答案 0 :(得分:1)

您需要了解有关JavaScript Cookie的更多信息。您正在使用一个不必要的变量,您可以在本地范围内再次声明。

当窗口加载未初始化的变量(例如

)时

var myCookie;

始终为undefined。所以你应该首先使用document.cookie

进行初始化
var myCookie = document.cookie;

现在,要设置cookie供以后使用,您需要一个键,如:

document.cookie = "myCookie=myValue";

您可以在此处阅读更多内容:http://www.w3schools.com/js/js_cookies.asp

答案 1 :(得分:0)

如果您默认情况下未指定过期日期,则在浏览器关闭时会删除Cookie。

document.cookie = "style=common.css; expires=Thu, 18 Dec 2016 12:00:00 UTC; path=/";

然后你可以阅读:

function read_cookie(key)
{
    var result;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}
read_cookie('style'); //common.css

我的建议是使用与Cookies不同的东西。也许LocalStorage的polyfill会更好。