我有一个在Web浏览器中运行的游戏(如插件)和我想要做的是:从关闭到AJAX响应防止网页浏览器返回
检测,如果用户已决定关闭浏览器(按Alt + F4,击中的“X”按钮等)从关闭
防止浏览器,而我们火到我们的网络服务的调用来记录用户已经关闭了浏览器
一旦我们收到来自Web服务的响应,释放锁并允许浏览器按要求关闭。
我们想这样做的主要原因是,我们有一些并发问题,并通过我们的记录,我们要隔离的人注销/从哪里插件已崩溃真正的情况下关闭浏览器去。
我看着使用jQuery做这个(为X浏览器的兼容性 - Opera将无法正常工作,但我们不会对任何歌剧反正用户谢天谢地):
$(window).bind('beforeunload', function(e) {
e.preventDefault();
// make AJAX call
});
的问题是,该显示器向用户发送一个确认对话框('你确定要离开这个页面'),用户可以在发送AJAX呼叫之前确认该对话框。
所以问题是,有没有办法阻止浏览器关闭,直到收到响应?当页面被改变时'beforeunload'也会被触发 - 是否有一种区分点击链接和实际点击关闭的方法?
感谢任何帮助!
只是出于好奇......如果交换“preventDefault”和“make ajax call”部分,是否有区别? – hugomg 2012-01-05 13:34:54