会话结束时做一些事情

时间:2017-01-10 18:01:05

标签: javascript cookies session-cookies

基本上我只需要在javascript中以会话结束时执行某些操作。

我已经尝试了

window.onbeforeunload = function () 

但是有没有办法用cookie或其他东西来做。 我必须这样做是JavaScript,因为它将用于其他网站,而不仅仅是我的,所以我不能做任何服务器端。

2 个答案:

答案 0 :(得分:0)

如果您网站的所有浏览器标签都已关闭,我想您想要吗?

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 :(");
 };

答案 1 :(得分:0)

根据您的评论"使用会话Cookie,例如当窗口关闭且所有会话Cookie被删除时#34;,您是否考虑过使用window.sessionStorage

来自MDN上的页面

  

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

(我的重点补充)

从你想要做的事情来看,这可能正是你所需要的。

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