【问题标题】:beforeunload not working in Safari 9.1 after the page reloads on clicking leave page button在单击离开页面按钮时页面重新加载后,beforeunload 在 Safari 9.1 中不起作用
【发布时间】:2016-09-13 03:01:05
【问题描述】:

在 safari 9.1 中,jquery beforeunload 浏览器弹出窗口第二次没有出现。 一旦用户单击弹出窗口中的离开页面按钮,页面就会重新加载。但在此之后,尽管控件转到代码,但弹出窗口永远不会出现。除非再次重新打开浏览器,否则弹出窗口永远不会出现。 PFB代码

window.addEventListener("beforeunload", function (e) {
    if(condition) {
        e.returnValue="";  // for chrome
        return "message";
    }
});

【问题讨论】:

  • 我可以确认这一点。在过去的几个小时里,我一直在寻找在 Safari 上实现它。有谁知道这是否可行?我对此表示怀疑,因为这似乎是浏览器的政策,以避免因滥用提示而惹恼用户。
  • 我也可以确认这个问题。使用 Safari 中的 javascript 调试器,附加到 onbeforeunload 事件的函数将被执行,但如果用户之前通过“离开”单击回答了此对话框,则离开或停留对话框永远不会出现。恢复正确行为的唯一方法是关闭浏览器窗口并重新打开。在 Safari 9.1.1 中测试。
  • 有没有办法通过javascript解决这个问题
  • 有人找到解决方案了吗?我在 mac safari 11.0 上遇到了同样的问题
  • 有什么更新吗?我也在为此苦苦挣扎。我发现了一个关于此的错误报告:openradar.me/28814642,它被标记为另一个问题的重复,但我无法访问原始问题?

标签: jquery safari onbeforeunload


【解决方案1】:

似乎由于错误,它已从某些浏览器中永久删除。 请参阅此处的铬描述https://www.chromestatus.com/feature/5349061406228480 而这个 chrome 提交 https://chromium.googlesource.com/chromium/src.git/+/141dbc132f8aa2588fad4cf50fbfd7a319234b61

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2018-10-15
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多