我有一个功能来创建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); } } }
该功能按预期工作,但是我需要做什么来设置cookie永不过期?
解决方法
没有办法永远不会过期。
这不是一个javascript限制,它只是不是cookie http://www.faqs.org/rfcs/rfc2965.html规范的一部分。
这不是一个javascript限制,它只是不是cookie http://www.faqs.org/rfcs/rfc2965.html规范的一部分。
你将来可以设置一个远的日期。例如将它设置为20年从现在调用setCookie与20 * 365作为exdays参数,因为你setCookie函数期望在它过期多少天。如下
setCookie('cookiename','cookie_val',20*365);