在javascript中捕获浏览器的onClose事件 - 而不是onUnload

时间:2014-09-04 14:06:40

标签: javascript logout

我有一个系统,我需要知道浏览器在一个文件中关闭的时间。在一个会话中创建和销毁此文件的次数。当浏览器关闭时以及文件被销毁时,我可以在window.onbeforeunload事件中获得控制权。我需要知道浏览器什么时候关闭。我需要在浏览器关闭时在服务器上触发注销事件,而不是每次文件被销毁时触发。我需要在同一个文件中知道这个。如何知道在同一事件天气中浏览器已关闭或文件已被销毁,并且已触发卸载事件。我试过的是:

window.onbeforeunload = function(e) {
    var e = e || window.event;
    if (!(e.clientY > 0) || e.altKey) {
        //Logout event
    }
}

每次触发unload事件时都会导致注销,而不仅仅是在调用浏览器时注销。

任何帮助将不胜感激。提前谢谢......

1 个答案:

答案 0 :(得分:0)

根据您的上一条评论:

  • 您可以在客户端上设置唯一的持久性cookie。这个cookie是 每个客户都是唯一的(不要使用IP地址)
  • 此Cookie与当前运行的会话一起存储。

当用户关闭浏览器并重新打开它时,会话cookie就消失了。客户端cookie仍然有效并将被发送。

现在您可以检查用户是否通过检查客户端cookie值从同一客户端登录,只是发送存储在延迟会话中的值,您甚至可以重新初始化"这次会议再次。

如果用户试图打开另一个浏览器实例(IE和FF),这甚至可以工作,因为每个浏览器都拥有它自己唯一的cookie值。 enter image description here