2012-02-18 114 views
1

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

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

这样做的主要原因是我不希望当其中一个参与者关闭浏览器时显示会话正在运行。

回答

3

使用unloadonbeforeunload事件:

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

最好注册两个事件确定回调会触发。

+0

试过,没有在Chrome中工作。 – THEK 2012-02-18 22:22:44

+0

@THEK。为Chrome添加了答案。试试吧 – gdoron 2012-02-18 22:25:02

+0

非常感谢您的快速回复。完美的作品。 – THEK 2012-02-18 23:01:19

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

您可以使用beforeunload事件,因为卸载事件jQuery的1.8版本,每当用户离开你的页面的beforeunload事件触发弃用。

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