Onbeforeunload不起作用,直到鼠标在体内被点击一次

时间:2018-01-30 14:11:41

标签: javascript jquery cross-browser 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';
};

我尝试使用'触发器('点击')' .click()'来模拟页面加载时的点击事件。事件。

但是,在我自己(身体上)点击身体之前,仍然无法工作。

我创造了一支短笔,它复制了我所面临的问题。

https://codepen.io/kanchanrai/pen/LQEZYV

非常感谢任何帮助。提前致谢。

1 个答案:

答案 0 :(得分:0)

也许迟到的答案......

以下是MDN documentation on beforeunload event所述的内容:

  

注意:为了防止不需要的弹出窗口,浏览器可能不会显示在beforeunload事件处理程序中创建的提示,除非该页面已与之交互,或者根本不显示它们。

这与您观察到的行为相符。

相关问题