【发布时间】:2012-12-02 01:52:43
【问题描述】:
当浏览器关闭并且已经放在 window.onbeforeunload 上时,我需要删除 cookie,如下所示:
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。但是,我仍然无法弄清楚如何编码。谁能帮我吗?不过,代码 sn-p 将不胜感激。 CMIIW
【问题讨论】:
-
我对这个问题不是 100% 清楚,但也许您想要一个会话,请阅读 stackoverflow.com/questions/5608764/…。
-
@PeterJ:我目前正在使用 JSP 或 JSTL,我如何通过会话来实现这一点,因为我需要这不是为了检测第一页,而是在登录后检测重定向到另一个页面。我已经尝试使用 session.isNew() 但它只适用于 index.jsp。 CMIIW
-
我不知道你是如何初始化cookie的,但是如果你不提供它的过期时间,它会在你关闭浏览器时过期。不确定这是否有帮助...
-
@Ian:我使用 setCookie('Times,value, 1) 初始化 cookie,其中 1 表示 1 天。我这样做是因为在我的代码中,当计数器结束时,将触发 deleteCookie。 CMIIW
标签: javascript