【发布时间】:2014-09-27 11:27:13
【问题描述】:
我的代码中有一个 setCookie 和 getCookie 函数。它们在 IE 和 FireFox 中运行良好,但在 Chrome 中却不行。基本上,我的脚本会检查是否选中了某些复选框,然后根据组合将某个值存储在名为“层”的 cookie 中。我收到存储在“层”中的值的警报,但它在 Chrome 中始终显示为“未定义”。我检查了我的设置,我允许 cookie 并尝试清除它们并再次访问它们。但它不起作用!函数本身肯定没有问题,因为它们在其他浏览器中运行良好……只是 Chrome。
function setCookie(cname,value,exdays)
{
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + value + "; " + exdays + "; ";
}
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);
}
}
}
var ch1 = document.getElementById("checkbox-h-2a").checked;
var ch2 = document.getElementById("checkbox-h-2b").checked;
var ch3 = document.getElementById("checkbox-h-2c").checked;
if (ch1==true && ch2==false && ch3==false) {
setCookie("layer","hosp",15);
}
else if (ch1==true && ch2==true && ch3==false) {
setCookie("layer","hospFire",15);
}
else if (ch1==true && ch2==false && ch3==true) {
setCookie("layer","hospPolice",15);
}
else if (ch1==false && ch2==true && ch3==true) {
setCookie("layer","firePolice",15);
}
else if (ch1==false && ch2==true && ch3==false) {
setCookie("layer","fire",15);
}
else if (ch1==false && ch2==false && ch3==true) {
setCookie("layer","police",15);
}
else if ((ch1==false && ch2==false && ch3==false) || (document.getElementById("checkbox-h-2c").checked==true && ch2==true && ch3==true)) {
setCookie("layer","hospFirePolice",15);
}
alert(getCookie("layer"));
window.location = FACILITY_MAP;
【问题讨论】:
-
嘿,我真的可以在这里得到一些帮助,而不是投反对票吗?
-
赞成票,因为没有给出反对票的理由。这是一个合理的问题
标签: javascript jquery google-chrome cookies