检测窗口关闭
我正在创建一个聊天客户端,它使用数据库来检查会话0等待,1运行,2关闭的状态。
我有一个关闭按钮,将状态更改为2,但我想知道,如何通过按x来检测浏览器是否关闭?
主要原因是当其中一个参与者关闭浏览器时,我不希望会话显示为正在运行。
使用unload
和onbeforeunload
事件:
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?"); })