只有在体内单击鼠标一次后,Onbeforeunload才会起作用
经过漫长的一天试图找到解决这个问题的方法后,我不断遇到同样的问题。
基本上,我有一个网站,如果用户点击“浏览器刷新”按钮,我想弹出一个“你确定”的警告框,其中包含选项“重新加载”和“不重新加载”(基本上,浏览器返回的内容)。
令人惊讶的是,它在IE中运行得很好。 但是在chrome或firefox中,刷新通常没有弹出窗口。
弹出窗口仅在我点击身体某处然后单击“浏览器刷新”按钮时才会出现。
我已经有以下和其他许多类似的替代方案:
window.onbeforeunload = function (e) { e = e || window.event; // For IE and Firefox prior to version 4 if (e) { e.returnValue = 'Any string'; } // For Safari return 'Any string'; };
我尝试使用’trigger(’click’)’,’。click()’事件模拟页面加载时的点击事件。
但是,直到我自己(身体上)点击身体后仍然无效。
我创造了一支短笔,它复制了我面临的问题。
任何帮助将非常感谢。 提前致谢。
也许迟到的答案……
以下是关于beforeunload事件状态的MDN文档 :
注意:为了防止不需要的弹出窗口,浏览器可能不会显示在beforeunload事件处理程序中创建的提示,除非页面已与之交互,甚至根本不显示它们。
这符合您观察到的行为。