**此问题被标记为重复。 我认为这不完全是重复的。建议的重复答案涉及jQuery,我在这里没有使用它。但是这个解决方案有助于我的调查找到答案。
我要求能够根据用户访问网页来清理一些信息。
当用户点击页面上的任何导航按钮或链接或后退按钮时,我想在用户导航到新页面之前更新信息。
基本上它看起来像这样:
function handleHashChange()
{
removeNodes();
}
window.addEventListener("beforeunload", handleHashChange, false);
removeNodes()调用一些REST API来更新数据。
我最初尝试在Chrome上使用“hashchange”事件。它看起来像是进入handleHashChange()和removeNodes(),但它没有成功完成。
当我将事件更改为“beforeunload”时,链接和按钮似乎在Chrome上运行正常,但后退按钮并不总是有效 - 它似乎在完成之前中止,尽管我确实看到它工作了几次。
当我尝试使用Firefox时,它似乎进入了beforeunload方法,但在任何情况下都没有完成。我没有在IE上试试。
有什么想法吗? removeNodes()方法调用一些REST API。它不应该超级慢,但我猜测它可能足够缓慢,浏览器在它有机会完成之前中止它。