beforeunload 的问题不会阻止刷新/关闭

Posted

技术标签:

【中文标题】beforeunload 的问题不会阻止刷新/关闭【英文标题】:Issues with beforeunload not preventing refresh/closing 【发布时间】:2021-05-25 07:38:13 【问题描述】:

尝试使用 beforeunload 和嵌入的 typeform 来防止关闭/刷新,但它似乎没有显示警告消息。我有什么遗漏吗?

<html>
  <body>
    <script>
      window.addEventListener("beforeunload", function(event) 
        event.returnValue = "";
      );
    </script>
    <div class="relative pt-16 m-auto overflow-hidden" style="height: 700px">
      <iframe
        id="typeform-full"
        
        
        frameborder="0"
        allow="camera; microphone; autoplay; encrypted-media;"
        src="https://form.typeform.com/to/AQlHXdch?typeform-medium=embed-snippet"
      ></iframe>
      <script>
          type="text/javascript"
          src="https://embed.typeform.com/embed.js"
      </script>
    </div>
  </body>
</html>

【问题讨论】:

【参考方案1】:

也许您正在使用 Chrome?

在 Chrome 51 中删除了页面指定 onbeforeunload 字符串的功能。(从 Safari 9.1 和 Firefox 4 开始,Safari 也删除了它。) https://www.chromestatus.com/feature/5349061406228480

【讨论】:

我确实是。在当前版本的浏览器中,有没有其他方法可以警告用户丢失数据?【参考方案2】:

通过过度滚动行为解决

【讨论】:

以上是关于beforeunload 的问题不会阻止刷新/关闭的主要内容,如果未能解决你的问题,请参考以下文章

仅在页面关闭时触发事件[重复]

移动浏览器在关闭浏览器时不会触发 `beforeunload`/`onload`

奇葩のbeforeunload

Vue - 监听页面刷新和关闭

怎么使用jquery阻止页面的离开或卸载

页面的beforeunload和unload的事件应用