Jin*_*iel 2 javascript cookies
可能重复:
在javascript中读取cookie
我写了以下功能.我需要使用格式访问cookie $COOKIE['cookieName'].
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;
}
})();
Run Code Online (Sandbox Code Playgroud)
我设置了两个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;
}, {});
Run Code Online (Sandbox Code Playgroud)