在点击“离开页面”按钮后,Safari 9.1中的beforeunload无法正常工作,页面重新加载。

14
在Safari 9.1中,第二次不会弹出jQuery beforeunload浏览器弹出窗口。 一旦用户在弹出窗口中点击“离开页面”按钮,页面将重新加载。但是,在此之后,弹出窗口永远不会再次显示,尽管控件已进入代码。除非重新打开浏览器,否则弹出窗口永远不会显示。 以下是代码:
window.addEventListener("beforeunload", function (e) {
    if(condition) {
        e.returnValue="";  // for chrome
        return "message";
    }
});

我可以确认这一点。我已经花了几个小时来尝试在Safari上实现它。有人知道这是否可行吗?我对此表示怀疑,因为这似乎是浏览器的政策,以避免用滥俗的提示打扰用户。 - Guillermo Maschwitz
1
我也可以确认这个问题。在Safari中使用JavaScript调试器,附加到_onbeforeunload_事件的函数被执行,但是如果用户之前已经通过“离开”点击回答了此对话框,则不会出现离开或停留对话框。恢复正确行为的唯一方法是关闭浏览器窗口并重新打开。在Safari 9.1.1中进行了测试。 - Marshall-L-D
有没有通过JavaScript解决这个问题的方案? - Manas Saxena
有人找到解决方案了吗?我在Mac Safari 11.0上遇到了同样的问题。 - Mahesh Thumar
有更新吗?我也在苦苦挣扎。我找到了一个关于这个问题的错误报告:http://www.openradar.me/28814642,它被标记为另一个问题的重复,但我无法访问原始问题? - Mar
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接