想要检测浏览器关闭事件?

时间:2010-05-26 14:32:08

标签: javascript

我正在处理任何需要检测用户是否关闭标签页或浏览器的应用程序,以便我可以将用户与其他用户基本上断开聊天应用程序。

我用过: -

window.onbeforeunload = confirmExit;

function confirmExit() { 
    if(needToConfirm) {
        return "Leaving this page will end your conversation.";
    }

它的工作正常,当我尝试关闭浏览器或标签时,它会显示一个弹出消息“按OK继续,或取消保留在当前页面上”。 我想在用户点击“确定”按钮时执行任务,如果按“取消”,则会保留在当前页面上。

请帮帮我:(

提前致谢

Ansh J

3 个答案:

答案 0 :(得分:4)

这是不可能的。

你可以处理unload事件并在那里发送一个AJAX请求,但这可能不完全可靠。

最佳解决方案是每隔 x 分钟发送一次AJAX听觉,并在停止接收心跳时考虑用户断开连接。

答案 1 :(得分:2)

反过来说:当您收到Unload事件时,请向服务器发送一条消息,通知用户即将断开连接。服务器等待一段时间,然后自动断开连接。

然后,如果用户单击取消并停留在页面上,则会向服务器发送一条消息,通知客户端仍然存在。

缺点是,如果用户等待太长时间点击取消,他可能会断开连接。

答案 2 :(得分:1)

为什么不让客户定期'ping'服务器让它知道它们仍在那里,如果用户错过了说3 ping,那么它会被标记为已注销?