我需要在浏览器关闭时删除cookie,并且已经将window.onbeforeunload和其他内容放在一起,如下所示:
window.onbeforeunload = function(){
location.replace("admin.jsp?action=logout");
deleteCookie('Times');
}
使用setCookie如下:
function setCookie(name,value,days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
}
else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
当涉及到deleteCookie时,它包含如下:
setCookie(name,value,-1);
问题是每当我重新启动浏览器时,它总是来到window.onbeforeunload以便deleteCookie被触发。我实际上需要这个,以便在用户登录时重置我的倒数计时器,因为如果计数器没有结束,用户有时会在结束前关闭窗口/标签,因此cookie永远不会被删除。所以,我的想法是在用户登录时重置计数器,或者在用户注销时删除cookie。但是,我仍然无法弄清楚如何对此进行编码。谁能帮我吗?不过,我们将不胜感激。 CMIIW
答案 0 :(得分:6)
未在Cookie上指定Expires值将导致在浏览器会话结束时删除Cookie,即当用户关闭浏览器时。像:
Set-Cookie: made_write_conn=1295214458; Path=/; Domain=.foo.com
made_write_conn
cookie made_write_conn没有到期日期,使其成为会话cookie。用户关闭浏览器后将删除它。
尝试做:
setCookie('Times',value, '');
答案 1 :(得分:0)
关闭浏览器时,您无法更改页面的位置。
在服务器上,您应该使用session end events来清理帐户。