js在360,IE设置cookie的问题


先看下代码:

   
  window.onload=function(){
  
expirestime = 24*3600*1000;
//....


function getCookie(c_name){
if (document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1){
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}
function setCookie(name,value,strsec){
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

调用:setCookie(aid+"num",parseInt(cookienum)+1,expirestime);

我用这个js方法去设置cookie和获取cookie,不知道怎么回事在360下获取不到

php JavaScript cookie

leonly 12 years, 1 month ago

你在调用setCookie()的时候应该是只传name和value吧。

你这两个设置和取Cookie的函数没有问题,关键是你在调用setCookie()设置Cookie的时候要记得传一个时间参数,因为你的exp.setTime(exp.getTime() + strsec*1);这一句是把函数传进来的strsec加上1毫秒。所以过期时间太短了,在你用getCookie()去取时,还没有取到就过期了,所以当然取不到具体值了。建议最好在setCookie里设置一个默认过期时间,比如10分钟

至于为什么不传时间参数在IE下不能取到,但在Firefox却能取到,应该是每个浏览器内部对Cookie的实现机制不一样造成的吧。

   
  window.onload=function(){
  
expirestime = 24*3600*1000;
setCookie(aid+"num", parseInt(cookienum)+1, expirestime);
var val = getCookie(aid+"num");
alert(val);
}

最爱豆沙包 answered 12 years, 1 month ago

Your Answer