当用户关闭浏览器或导航到其他页面时,我需要对外部URL执行Async Http Post。
所以,我将一个JS处理程序附加到BeforeUnload事件。
有时会触发,有时则不会触发。我正在检查铬。每当我尝试通过检查器调试脚本时,它总能正常工作。
我必须只使用JavaScript(没有像jQuery等外部库)。
答案 0 :(得分:0)
您不能在beforeunload或unload事件中使用异步操作。为了让您的脚本工作,您必须使其同步。通过将async:false属性添加到您的ajax函数(或类似的,如果您使用不同的方法),这将很容易。可能是因为当你调试它时,你正在推迟窗口的处理。我还读到,为了调用一个函数,你需要在事件结束时返回一些东西。通常,如果返回一个字符串,文本将显示在弹出窗口中。我想你可以在这里找到更多有用的信息:window.onbeforeunload not working
答案 1 :(得分:0)
仅当用户与网站进行任何交互时才触发。如果没有任何互动事件(例如,单击而不是悬停),则不会触发onbeforeunload
。