会话结束时做点什么



基本上,当会话以javascript结束时,我只需要做一些事情。

我已经试过了

window.onbeforeunload = function () 

但有没有办法用饼干之类的东西来做我必须使用javascript,因为它将用于其他网站,而不仅仅是我的网站,所以我不能在服务器端做任何事情。

我想你希望你的网站的所有浏览器选项卡都关闭吗?

var state=false;
setInterval(function(){
state=false;
window.postMessage("ami","*");
setTimeout(function(){
try{
if(state==false){
window.lonely();
}
}catch(e){}
},2000);
},5000);
window.addEventListener("message",function(e){
if(e.data=="ami"){
window.postMessage("no!","*");
}else if(e.data=="no!"){
state=true
}});

像这样使用:

window.lonely=function(){
alert("im alone :(");
};

根据您的评论"例如,在关闭窗口并删除所有会话cookie时使用会话cookie",您是否考虑过使用window.sessionStorage

从MDN上的页面:

sessionStorage属性允许您访问当前来源的会话存储对象。sessionStorage类似于Window.localStorage,唯一的区别是存储在localStorage中的数据没有过期设置,存储在sessionStorage中的数据在页面会话结束时会被清除。只要浏览器处于打开状态,页面会话就会持续,并在页面重新加载和恢复期间继续存在。在新选项卡或窗口中打开页面将启动新会话,这与会话cookie的工作方式不同。

(我加了重点)

从你试图做的事情听起来,这可能正是你所需要的。

注意:请勿将其用于存储任何身份验证或其他敏感数据

最新更新