如何使用jQuery检测浏览器是否已关闭

时间:2010-11-04 13:07:24

标签: jquery browser navigation

我需要检测浏览器是否正在使用jQuery关闭,并且如果这是真的则执行一个事件。我的网站上有一个聊天功能(很像Facebook),可以让用户在导航到网站结构中的其他页面时登录,但是如果他们点击,则需要将他们从聊天中注销(因此他们不会在线显示给他人)浏览器关闭按钮。所以.unload()将无效,因为.unload()会将注销功能应用于所有窗口操作,包括导航到网站结构中的另一个页面。 .unload()适用于浏览器关闭,但也适用于浏览器前进和后退导航,因此我需要一种方法来检测浏览器是否正在关闭,并且仅在浏览器关闭时才会检测。

3 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是设置服务器的定期轮询,以告知用户仍在页面上。您可以每分钟发送一次AJAX请求以确认用户仍在那里,并且如果自上次通知以来已超过该时间,则在服务器端将其注销。

这可能不是最可靠的解决方案,但它是一种非常常见的解决方案,可能对您想要做的事情有效。

答案 1 :(得分:1)

这是不可能的。 onunload / onbeforeunload是系统提供的唯一事件。页面被卸载的原因没有透露给页面。

可以经常检查脚本打开的窗口是否仍然存在。这些解决方案基于setInterval()和窗口的closed属性。但我认为这不是你想要的。

答案 2 :(得分:1)

无论您使用什么进行聊天(orbited,websockets?)都应该能够检测到会话超时。