浏览器关闭时删除cookie

时间:2012-12-14 03:39:27

标签: javascript

我需要在浏览器关闭时删除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

2 个答案:

答案 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来清理帐户。