如何设置此cookie永不过期
我有一个函数来创建一个cookie,传递cookie的名称,值和到期时间(以天为单位)。
这是function:
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); } } }
该function按预期工作,但我需要做什么来设置cookie永不过期?
没有办法设置never expire
。 这不是javascript限制,它不是cookie的规范的一部分http://www.faqs.org/rfcs/rfc2965.html 。
您可以设置为将来的远期日期。 例如,从现在开始设置它为20*365
使用20*365
作为exdays
参数调用setCookie
,因为setCookie
函数期望它到期前多少天。 如下
setCookie('cookiename','cookie_val',20*365);
变量exdays
是cookie到期之前的时间,只需在函数调用中将该值设置为几千天即可。
setCookie('cookiename', 'cookievalue', 10000); //expires in 10k days