【发布时间】:2011-12-07 01:50:04
【问题描述】:
是否有任何方法可以检测用户何时离开页面,无论是通过关闭浏览器、在地址栏中输入新 URL、单击重定向到其他域的链接等方式吗?
这样做的主要目的是执行一些活动,例如:
- 与服务器同步一些驻留在客户端的数据
- 清除服务器会话
我正在尝试使用窗口的卸载和 beforeunload 事件,并阅读其他问题,例如: Best way to detect when a user leaves a web page? // Is there any way to know that user leaving a page with asp.net? 但我没有找到我期望的答案。
这是一个简化的 js sn-p 来理解我在尝试什么:
window.onunload = function(){
if (theConditionThatINeed){
doThings();
SyncWithServerAndAbandonSession(url, localObjects);
}
else {
doNothing();
}
}
我不想在用户离开之前显示任何形式的确认,所以我认为 onbeforeunload 在这里对我没有帮助。
假设答案是“没有办法做这样的事情”,完成我想要的同步和会话清除的推荐做法是什么?
我支持的主要浏览器是 IE >= 7
【问题讨论】:
标签: javascript ajax session local-storage