检测窗口关闭

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

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

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

使用unloadonbeforeunload事件:

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

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

您可以使用JavaScript监听onbeforeunload事件 ,该事件在浏览器窗口关闭时触发。

当您使用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 }; 

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

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