检测窗口已关闭

时间:2012-02-18 22:18:17

标签: php javascript jquery window

我正在创建一个聊天客户端,该客户端使用数据库来检查会话的状态0等待,1运行,2关闭。

我有一个关闭按钮,将状态更改为2,但我想知道,如何通过按x来检测浏览器是否关闭?

主要原因是,当其中一位参与者关闭浏览器时,我不希望会话显示为正在运行。

3 个答案:

答案 0 :(得分:4)

您可以使用JavaScript监听onbeforeunload-event,这会在浏览器窗口关闭时触发。

当您使用jquery标记问题时,可以使用.unload()

$(window).unload(function() {
  // Do some ajax-request to kill the session
});

没有jQuery,它将是:

window.onbeforeunload = function() {
   // Do some ajax-request to kill the session
};

答案 1 :(得分:3)

使用unloadonbeforeunload事件:

window.onunload = window.onbeforeunload = function (){...};

最好注册两个事件以确保回调将被触发。

答案 2 :(得分:1)

您可以使用 beforeunload 事件,因为在jQuery 1.8版中不推荐使用卸载事件,并且只要用户离开您的网页,就会触发beforeunload事件。

$(window).bind("beforeunload", function() { 
    return confirm("Do you really want to close?"); 
})