【发布时间】:2012-04-07 17:24:00
【问题描述】:
我有一些保存 cookie 的 javascript 代码。但是,如果在保存 cookie 后,用户打开一个新选项卡,则 cookie 似乎没有保存。新标签位于同一域中。
这是我的 cookie 设置/获取代码:
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++) {
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name) {
return unescape(y);
}
}
}
如果某些 javascript 调用 setCookie('mycookie', 1),然后用户单击将 _target 设置为 _blank 的链接,则 cookie 不会加载到新选项卡中。所以getCookie('mycookie') 不会返回1。
这里有什么问题?
【问题讨论】:
-
这 2 个页面是否属于不同的域?
-
是的,上面已经澄清了。
-
发布了一个答案,看看是否有帮助:)
-
对不起,我的意思是他们在同一个域上,没有不同。
标签: javascript cookies