Possible Duplicate:
Read cookie in javascript
我写了以下函数。我需要使用 $COOKIE['cookieName']
格式访问 cookie。
var $COOKIE = (function(){
if(!document.cookie)
return {};
else{
var c = document.cookie.split(';');
var len = c.length;
var ret = {};
var temp ;
for( var i = 0 ; i < len ; ++i )
{
temp = c[i].split('=');
ret[temp[0]] = temp[1];
}
return ret;
}
})();
我设置了两个 cookie a1= 2 , a2 = 9。$COOKIE['a1']
给了我 2,但 $COOKIE['a2']
是未定义。
为什么会这样?我的逻辑/代码有什么问题?
最佳答案
问题是你用“;”分割但是 cookie 中的值由“;”(分号 + 空格)分隔。因此,您的第二个值将是 "a2": 9
要修复它,只需在分隔符中添加一个空格或使用此代码段来实现更以数据为中心的方法;)
var $COOKIE = (document.cookie || '').split(/;\s*/).reduce(function(re, c) {
var tmp = c.match(/([^=]+)=(.*)/);
if (tmp) re[tmp[1]] = unescape(tmp[2]);
return re;
}, {});
关于javascript - 在 javascript 中访问 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9265498/