gpt4 book ai didi

javascript - Safari:onbeforeunload

转载 作者:太空狗 更新时间:2023-10-29 14:20:21 25 4
gpt4 key购买 nike

前提条件:您应该使用 Safari 10

嗨,我很难请假 |保持确认框在不同浏览器上显示在我的页面上。

请转至https://www.biznessapps.com/cms ,并使用以下凭据登录:

username: pzheng64@gmail.com
password: skl@0!_~!(

登录后,转到/welcome 页面。请点击左侧边栏中的设置,然后转到成员(member)选项卡。

如果您可以看到“启用成员(member)功能”,则单击它并更改那里的任何内容并导航到另一个页面。第一次尝试离开页面时,您会看到确认框出现。 onbeforeunload confirmbox

点击“离开”转到您的目标页面,然后返回此设置页面并尝试相同的操作;您不会再看到确认框(使用 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";
}
});

它在 Google Chrome 和 Firefox 上运行良好,但在 Safari 上运行不佳。

谢谢!

最佳答案

这可能是由于 Safari 的 Back-Forward 缓存。可以在这里找到一篇不错的文章: https://team.goodeggs.com/you-forgot-about-bfcache-f7a9bdeceb6c#.qgri9etsb

解决办法是基本上只重新加载页面,如果它是从缓存中加载的,就像这样:

window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
};

event.persisted 是神奇的部分。如果页面是使用浏览器的“后退”或“前进”加载的,则为 true

关于javascript - Safari:onbeforeunload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com