关闭窗口时触发ajax调用

时间:2013-11-13 07:55:57

标签: javascript jquery html

我需要在关闭窗口时触发方法。为此,我尝试发出警告声明,它在IE和FIREFOX 中工作正常。 但不使用chrome 。请帮帮我...

$(window).bind('beforeunload', function(){
   alert ("before unload")
});

1 个答案:

答案 0 :(得分:3)

你做不到。现代浏览器中无法可靠地对beforeunload事件执行非即时操作(特别是,通常会阻止涉及查询的所有操作)。这是一种安全措施:任何可能延迟或阻止用户关闭窗口的东西都是可以接受的。

您需要更改应用程序的逻辑。现代AJAX应用程序必须不断保存需要保存的数据或提供启动保存的可见方式,他们不能等待窗口关闭。而且您必须在不依赖浏览器发出注销的情况下管理会话生命周期服务器端。

关于提醒和Chrome,这里是an extract from the MDN

  

自2011年5月25日起,HTML5规范声明要调用   window.showModalDialog(),window.alert(),window.confirm()和   在此事件期间可能会忽略window.prompt()方法。

越来越多的浏览器可能会阻止此警报,这在大多数情况下都是痛苦的。