JS BeforeUnload事件有时不会触发

时间:2014-08-27 19:54:05

标签: javascript-events onbeforeunload

当用户关闭浏览器或导航到其他页面时,我需要对外部URL执行Async Http Post。

所以,我将一个JS处理程序附加到BeforeUnload事件。

有时会触发,有时则不会触发。我正在检查铬。每当我尝试通过检查器调试脚本时,它总能正常工作。

我必须只使用JavaScript(没有像jQuery等外部库)。

2 个答案:

答案 0 :(得分:0)

您不能在beforeunload或unload事件中使用异步操作。为了让您的脚本工作,您必须使其同步。通过将async:false属性添加到您的ajax函数(或类似的,如果您使用不同的方法),这将很容易。可能是因为当你调试它时,你正在推迟窗口的处理。我还读到,为了调用一个函数,你需要在事件结束时返回一些东西。通常,如果返回一个字符串,文本将显示在弹出窗口中。我想你可以在这里找到更多有用的信息:window.onbeforeunload not working

答案 1 :(得分:0)

仅当用户与网站进行任何交互时才触发。如果没有任何互动事件(例如,单击而不是悬停),则不会触发onbeforeunload