在Firefox和Safari中测试,我尝试了以下两行。每个人都设置了cookie,但是在我关闭(然后重新打开)浏览器之后,这两种方法都没有使cookie过期。 浏览器的Cookie信息说" test"设置为过期,"在会话结束时#34;但它不会发生。
有一些类似的帖子(例如,When does a cookie with expiration time 'At end of session' expire?),但没有任何帮助或关于通过JavaScript设置cookie,特别是像我一样。
New_Star
答案 0 :(得分:0)
expires标签想要获得UTC-Datestring。你可以使用我写的一些简单函数:
setCookie = function(attrib, value, exp_days) {
var dt = new Date();
dt.setTime(dt.getTime() + (exp_days*86400000)); // Convert days to ms
document.cookie = attrib + "=" + value + "; expires=" + dt.toUTCString(); // add attrib=value to the cookie and set an expiration date
}
getCookie = function(attrib){
var split_cookie = document.cookie.split("; ");
attrib+="=";
for(var i=0; i<split_cookie.length; i++)
if(~split_cookie[i].indexOf(attrib)) // if the attribute is somewhere in the cookie string
// im using an ugly bitflip operator here, it could as well be an if(...!=-1)
return split_cookie[i].substring(attrib.length + split_cookie[i].indexOf(attrib),split_cookie[i].length);
return "";
}
removeCookie = function(attrib){
setCookie(attrib, "", -1);
}
如果使用removeCookie()函数,则在删除当前页面时将删除attrib的值。
答案 1 :(得分:0)
我没有意识到当你在Mac上“关闭”浏览器时,仍然有一个浏览器进程保持活动状态。您必须明确退出浏览器。一旦我这样做,cookie就消失了。