为什么chrome会显示弹出警告:"您所做的更改可能尚未保存。"在每页退出?

时间:2016-10-06 14:01:25

标签: javascript jquery google-chrome

设置

我实现了一些代码来防止用户从未保存的表单中丢失数据,而这些表单本应显示此但我的代码似乎没有被执行。我的代码:

$(window).on('beforeunload', function (e)
{
  if ($('.loading').length)
  {
    var confirmationMessage = 'Data is still being saved and/or loaded in the background. Leaving the page may cause your data to not be saved correctly.';

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
  }

  if ($('form.detect-dirty.dirty').length)
  {
    var confirmationMessage = 'You have edited but not saved a form on this page.';

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
  }
  return false;
});

$(document).on('submit', 'form', function()
{
  $(window).off('beforeunload');
});

与此票证中提取的内容类似:Display a warning with 'onbeforeunload' when leaving a page, except if 'Submit' is clicked

当然,还有其他代码在编辑字段时将表单标记为脏。

问题

几天前开始,我的网络应用程序突然开始显示每个操作的窗口,这些操作会使页面显示“#34;您所做的更改可能尚未保存。”#34;

这忽略了我的脏标志和中断所需的加载类,并且不会显示我的自定义消息。

旁注

我的问题的措辞被标记为"主观"然而,我试图以问题的形式对其进行短语,并匹配我在谷歌搜索的关键词,以找到我即将发布的解决方案。

1 个答案:

答案 0 :(得分:3)

删除'返回false'在函数的底部恢复条件。谷歌Chrome已发布安全更新。使用更新偶数false会触发卸载对话框。

我找到了自己的答案,并认为社区将从我的斗争中受益。

至于消息,不再可以自定义这些消息。此更新导致此问题引发的另一个问题:javascript onbeforeunload not showing custom message