【发布时间】:2012-02-18 22:18:16
【问题描述】:
我正在创建一个聊天客户端,它使用数据库检查会话的状态 0-等待、1-运行、2-关闭。
我有一个关闭按钮,它会将状态更改为 2,但我想知道,如何检测浏览器是否仅通过按 x 关闭?
这样做的主要原因是我不希望会话在其中一位参与者关闭浏览器时显示为正在运行。
【问题讨论】:
标签: php javascript jquery window
我正在创建一个聊天客户端,它使用数据库检查会话的状态 0-等待、1-运行、2-关闭。
我有一个关闭按钮,它会将状态更改为 2,但我想知道,如何检测浏览器是否仅通过按 x 关闭?
这样做的主要原因是我不希望会话在其中一位参与者关闭浏览器时显示为正在运行。
【问题讨论】:
标签: php javascript jquery window
您可以使用 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
};
【讨论】:
使用unload 和onbeforeunload 事件:
window.onunload = window.onbeforeunload = function (){...};
最好同时注册这两个事件以确保回调会触发。
【讨论】:
您可以使用 beforeunload 事件,因为 unload 事件在 jQuery 版本 1.8 中已被弃用,并且当用户离开您的页面时会触发 beforeunload 事件。
$(window).bind("beforeunload", function() {
return confirm("Do you really want to close?");
})
【讨论】: