我正在创建一个聊天客户端,该客户端使用数据库来检查会话的状态0等待,1运行,2关闭。
我有一个关闭按钮,将状态更改为2,但我想知道,如何通过按x来检测浏览器是否关闭?
主要原因是,当其中一位参与者关闭浏览器时,我不希望会话显示为正在运行。
答案 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)
使用unload
和onbeforeunload
事件:
window.onunload = window.onbeforeunload = function (){...};
最好注册两个事件以确保回调将被触发。
答案 2 :(得分:1)
您可以使用 beforeunload 事件,因为在jQuery 1.8版中不推荐使用卸载事件,并且只要用户离开您的网页,就会触发beforeunload事件。
$(window).bind("beforeunload", function() {
return confirm("Do you really want to close?");
})