此问题已被困住了几天,真的需要,并希望得到一些帮助。我的要求是,我想要做一个服务器端回调,以清除掉一些对象,当用户离开我们的页面,而不点击注销。出于商业原因,我们的ASP.NET会话超时必须设置为非常高的值。此外,我不想弹出警告/对话框来强制用户返回页面并单击注销。Chrome/Safari在某些情况下未调用卸载程序
我到目前为止的解决方案是通过在页面中嵌入此javascript来进行AJAX回调。
window.onunload = pageleave;
function pageleave() {
alert('test');
PageMethods.CheckLogout('abc','xyz',OnSucceed,OnFail);
}
这里虽然问题: 对于IE和Firefox,卸载火灾,警报被看出来了,我看到我的C#端回调在所有我渴望
a) User closes browser
b) User types in a new URL in the address bar
c) User clicks on a link causing page to reload
的情况下,对于Chrome和Safari,情况a和b正常工作。但是,当用户点击链接,导致我的aspx页面重新加载时,我的C#端代码不会被调用。 javasacript警报虽然被解雇。
我想知道如何让Chrome/Safari的行为像IE/Firefox一样。这甚至有可能吗?
在此先感谢您的帮助,
Rajesh。
我认为只有后面的建议 - 使用同步ajax请求 - 是必要的。 'beforeunload'事件用于确认用户实际想要离开该页面。 – 2011-02-26 02:52:56
非常感谢你们。马上试试这个。 – Rajesh 2011-02-28 16:28:33
+1此解决方案适用于Chrome和Firefox,但不适用于IE9(不知道为什么我害怕)。此外,对于Chrome,它仅适用于我在Unload事件中的情况 – 2012-04-16 12:58:23