在关闭浏览器之前Javascript警告不按预期工作
我尝试了基于大量示例的解决方案,并且只有在首先点击其他内容的情况下,该事件才有效。 一个链接首先在同一页面上右键单击。 然后,如果我点击浏览器关闭按钮,它会在按照预期结束之前提示警告。
否则,如果我第一次进入页面或刷新页面并单击关闭按钮,它不起作用,页面关闭。 onbeforeunload
函数中的代码每次都会触发,但在最后一种情况下显然不起作用。
$("button, a").bind("click", function () {
window.onbeforeunload = null;
});
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Sure?';
}
// For Safari
return 'Sure?'; // the code hits each time - normally it does have no effect but if right-clicked a link on the page first it does work?
};
它看起来很奇怪的行为。 任何人都知道为什么只有在页面上发生另一个事件时才起作用。
尝试在Firefox和Chrome。
这是一个功能。 根据MDN:
为了防止不需要的弹出窗口,有些浏览器不会显示在beforeunload事件处理程序中创建的提示,除非页面已与之交互; 有些根本不显示它们。
什么是你需要onbeforeunload弹出窗口,即使没有用户交互显示的用例? 例如,这些通常用于防止未提交表单上的数据丢失。 如果用户想要离开该页面并且没有任何理由显示该弹出窗口,则不应该尝试这样做。
链接地址: http://www.djcxy.com/p/74155.html上一篇: Javascript warning before closing browser not working as expected
下一篇: Calling Array.reduce on an array with a single element in Javascript