只有在体内单击鼠标一次后,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事件处理程序中创建的提示,除非页面已与之交互,甚至根本不显示它们。

这符合您观察到的行为。