基本上,当会话以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的工作方式不同。
(我加了重点)
从你试图做的事情听起来,这可能正是你所需要的。
注意:请勿将其用于存储任何身份验证或其他敏感数据