0

所以我正在尝试做我认为不可能的事情。我想销毁浏览器或选项卡关闭上的所有会话 cookie,所以我想出了一个解决方案,我只是在 JavaScript 格式方面遇到了一些小问题。这确实必须基于时间,因为当下一页重新加载时,它会将计时器设置为一年到期,以便我网站上的其他页面也不会删除 cookie。因此,在他们离开网站或关闭标签之前,cookie 不会过期。

所以 JavaScript 是这样开始的:

var today = new Date(); 
today.setSeconds(today.getSeconds() + 5);

alert(today);



window.onunload = function(){
   document.cookie = 'PHPSESSID=; expires=' + today;
   };

所以当我运行它时,它不能识别今天的变量,或者我今天的格式不正确。

感谢所有帮助!

4

2 回答 2

1

today变量超出范围。你需要在unload中创建它,或者在function()中传递它。

window.onunload = function(today){
   document.cookie = 'PHPSESSID=; expires=' + today.getTime();
   };

或者

    window.onunload = function(){
       var today = new Date(); 
       today.setSeconds(today.getSeconds() + 5);

       document.cookie = 'PHPSESSID=; expires=' + today.getTime();
       };
于 2013-05-25T21:36:59.783 回答
0

所以我决定用一个小脚本来销毁会话cookie。

这就是我想出的。

window.onunload = function(){
  var today = new Date();
  today.setSeconds(today.getSeconds() + 2);
  var today1= today.toUTCString()



  document.cookie =
      'PHPSESSID=<?php echo $sesid; ?>; expires='+ today1 +'; path=/'
      alert(document.cookie);
  };

所以这会将销毁设置为 2 秒,但是如果您导航到我网站上的任何其他页面,它将首先运行。

var today2 = new Date();
today2.setSeconds(today2.getSeconds() + 10000);
var today3= today2.toUTCString()

document.cookie =
  'PHPSESSID=<?php echo $sesid; ?>; expires='+ today3 +'; path=/';

这允许在您离开页面时随时销毁会话。

于 2013-05-28T14:44:06.673 回答