在safari上页面刷新后没有触发的beforeunload事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在safari上页面刷新后没有触发的beforeunload事件相关的知识,希望对你有一定的参考价值。

所以我试图向用户添加警告,如果他们离开页面而不保存他们的更改,目前这通过在某些事件上设置isEdited和isSubmitButtonClicked变量来工作,让我们假设isEdited是True而isSubmitButtonClicked是false。

这适用于所有情况下的chrome / firefox但在safari中它第一次工作,其中警报显示,我可以单击离开页面然后导航回同一页面尝试进行另一次更改并离开页面,这次是警报不会显示。

这只是野生动物园的问题,有没有人可以尝试任何经验或想法?

$(window).bind('beforeunload', function (e) {
    if (isEdited && !isSubmitButtonClicked) {
        var confirmationMessage = 'test';
        (e || window.event).returnValue = confirmationMessage;
        return confirmationMessage;
    }
    isSubmitButtonClicked = false;
});
答案

我似乎记得有关beforeunload的事情,除非用户先点击进入浏览器窗口,否则它不会触发。

以上是关于在safari上页面刷新后没有触发的beforeunload事件的主要内容,如果未能解决你的问题,请参考以下文章

移动 Safari:刷新时跳转到最后滚动位置的 JS 事件

在没有屏幕刷新的情况下,使用 jQuery 更改不透明度在 Chrome 或 Safari 中不起作用

如何在一个页面中触发一个事件后就刷新这个页面的另一部分呢?

页面刷新后禁用浏览器的自动滚动?

移动端 点击返回按钮页面不刷新

怎么刷新页面后,js就不执行了