Pau*_* Z. 7 html javascript css safari jquery
前提条件:您应该使用Safari 10.
嗨,我很难得到离开| 保持确认框以在不同浏览器的我的页面上显示.
请访问https://www.biznessapps.com/cms,并使用以下凭据登录:
username: pzheng64@gmail.com
password: skl@0!_~!(
Run Code Online (Sandbox Code Playgroud)
登录后,转到/欢迎页面.请单击左侧边栏中的"设置",然后转到"成员资格"选项卡.
如果您可以看到"启用会员功能",则单击它并更改其中的任何内容并导航到另一个页面.您将在第一次尝试离开页面时看到确认框出现.

单击"离开"转到目标页面,然后返回此"设置"页面并尝试相同的操作; 您将不会再次看到确认框(使用Safari时).
我在以下网址使用了此代码段:https://www.biznessapps.com/cms/v2/public/scripts/pages/settings.js?v = 68.160720
/* settingsPages.isChanged() is my custom function */
window.addEventListener("beforeunload", function(event) {
if (settingsPage.isChanged()) {
event.returnValue = "some string";
return "some string";
}
});
Run Code Online (Sandbox Code Playgroud)
它适用于Google Chrome和Firefox,但不适用于Safari.
谢谢!
这可能是由于 Safari 的后退缓存所致。关于此的一篇不错的文章可以在这里找到: https: //team.goodeggs.com/you-forgot-about-bfcache-f7a9bdeceb6c#.qgri9etsb
修复方法基本上是重新加载页面(如果是从缓存加载的),如下所示:
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
};
Run Code Online (Sandbox Code Playgroud)
event.persisted是神奇的部分。这是true如果页面是使用浏览器“后退”或“前进”加载的。
| 归档时间: |
|
| 查看次数: |
4826 次 |
| 最近记录: |