无论如何都要防止在使用Internet Explorer时触发onb​​eforeunload事件

new*_*ame 5 javascript refresh onbeforeunload javascript-events

我有一个函数,假设在用户关闭浏览器时触发,我将代码放在"window.onbeforeunload"函数中.

问题是每次如果我在Internet Explorer中重新加载页面,onbeforeunload事件也会触发这是一个问题,因为我只希望它只在用户关闭或导航离开当前页面而不是页面刷新时触发/重装.

因此,我不确定onbeforeunload是否打算在页面刷新/重新加载时触发,如果是这样,那么还有另一种方法可以解决它吗?谢谢

And*_*y E 0

没有聪明的方法来解决这个问题。页面上的任何卸载操作都会触发unloadbeforeunload事件,并且无法区分刷新和导航之间的区别。

您可以尝试一些方法,但没有 100% 的方法。例如,捕获F5Ctrl+R键将标识刷新,您可以为此取消设置onbeforeunload处理程序,但对于单击工具栏上的刷新/重新加载按钮的用户来说,它不起作用。您可以将事件处理程序附加到<a>元素或任何<form> onsubmits 上的所有点击,但这对于从页面的地址栏中键入新地址的用户没有帮助。

  • @cf_PhillipSenn:A1:keydown - keypress 不会在 F5 的所有浏览器中触发,并且 keyup 没有很多*真正的*用途,使用其他技术无法更好地完成这些用途。A2:最好的方法是捕获“body”或“document”对象的单击事件,并检查原始目标是“&lt;a&gt;”元素,例如“(event.target || event.srcElement)”。标签名称==“A”`。 (2认同)