Javascript 如何在浏览器中重新打开最近的选项卡时清除会话

Javascript 如何在浏览器中重新打开最近的选项卡时清除会话,javascript,Javascript,我可以在关闭浏览器的选项卡或窗口时使会话无效,但当我单击重新打开最近的选项卡时,它会按原样加载最近的页面 我想重定向到登录页面,如果单击重新打开,我会清除cookiesonUnbeforeUnload,但它不起作用 这是我的密码: `$(window).on("beforeunload", function(e) { var aCookies=document.cookie.split('; '); for (var i = 0; i < aCookies.length;

我可以在关闭浏览器的选项卡或窗口时使会话无效,但当我单击重新打开最近的选项卡时,它会按原样加载最近的页面

我想重定向到登录页面,如果单击重新打开,我会清除cookies
onUnbeforeUnload
,但它不起作用

这是我的密码:

`$(window).on("beforeunload", function(e) {
var aCookies=document.cookie.split('; ');
        for (var i = 0; i < aCookies.length; i++) {
            var cookie = aCookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + '=0; expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';


        }  
window.location.href = "/safe-unsecured/logout";`
} 
`$(window).on(“beforeunload”,函数(e){
var aCookies=document.cookie.split(“;”);
对于(变量i=0;i-1?cookie.substr(0,eqPos):cookie;
document.cookie=name+'=0;expires=Thu,1970年1月1日00:00:00 GMT;path=/;
}  
window.location.href=“/safe unsecured/logout”`
} 
在加载页面时,我清除cookies


任何帮助都将不胜感激

浏览器不会在关闭或浏览页面时加载新页面。永远不会请求注销页面

此外,只要浏览器未重新启动,会话将存在于浏览器中。会话不会因关闭选项卡而失效,而是会因整个浏览器关闭而失效。真正实现所需的唯一方法是让cookie保持一分钟的活动状态,并运行计时器,每10秒更新一次cookie到期时间,使其不会过期只要页面处于打开状态,或者选项卡在一分钟内未重新打开,就可以使用ire

这是更新代码的一个示例。您需要自己添加逻辑来检查cookie的存在性以及验证所需的所有其他内容

window.myCookieValueThatIReadBefore = 'Hello';
  window.setInterval(function() {
     setCookie('cookie_name', window.myCookieValueThatIReadBefore,1)
  }, 1000*10);
  function setCookie(cname, cvalue, exminutes) {
      var d = new Date();
      d.setTime(d.getTime() + (60*1000));
      var expires = "expires="+ d.toUTCString();
      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  }

请分享您迄今为止所做的尝试。可能重复您所说的“重新打开最近的选项卡”是什么意思?您只是在谈论将背景选项卡置于焦点位置吗?如果是这样,您可以使用
window.onblur
window.onfocus
来检测此问题(但当用户切换到其他浏览器选项卡时,您绝对不应该清除会话,这不是正常或预期的行为。)如果使用
window.onfocus
,也要小心,因为它的触发频率比您预期的要高(例如,关闭
警报()
后)。重新打开最近的选项卡是chrome上的一个选项,快捷键为Ctrl+Maj+T