javascript - 除非我单击页面,否则 Firefox 不会调用 `beforeunload` 事件

标签 javascript jquery html css firefox

我想处理 beforeunload Firefox 中的事件。除了用户需要手动单击页面或在输入中写入内容外,它工作正常。

我有以下代码可以在 Firefox 上运行,但同样,只有当我们手动单击该页面时。

<script>
    popMessage = "Foo";
    window.addEventListener("beforeunload", function (e) {
        (e || window.event).returnValue = popMessage;     //Gecko + IE
        alert(popMessage);
        return popMessage;
   });
</script>

我尝试添加:

  • document.body.click()
  • <input type='text' autofocus>

两者都没有做任何改变。

我还尝试使用 jQuery,希望它能正确处理它。还是一样:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
   $(window).on('beforeunload', function(){
      return 'Are you sure you want to leave?';
   });
</script>

这些在 Chrome 上工作正常,但在 Firefox 上不行。是否有希望在页面上没有用户交互的情况下实现此功能?

最佳答案

developer.mozilla.org指出“为了打击不需要的弹出窗口,浏览器可能不会显示在 beforeunload 事件处理程序中创建的提示,除非该页面已与之交互。”所以没有希望。

关于javascript - 除非我单击页面,否则 Firefox 不会调用 `beforeunload` 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769536/

相关文章:

javascript - 为什么我的函数在页面加载时触发,我该怎么办?

javascript - 是什么导致Flash和Actionscript变得无关紧要?

javascript - 基于非日期作为类别轴的 AmStock Chart

javascript - 下划线查找对象数组上的方法问题

jQuery load() 在 div 中显示 css 预加载器

javascript - 如何检测是否单击了形状(HTML5 Canvas )?

javascript - 如何为 HTML 中的 Select 元素添加阴影?

javascript - php - json_decode 未定义索引,但值在那里

html - 折叠的表单控件在大小调整期间正在更改其属性

html - 使用 CSS 移动静态对象的技巧