我实现了一些代码来防止用户从未保存的表单中丢失数据,而这些表单本应显示此但我的代码似乎没有被执行。我的代码:
$(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;
这忽略了我的脏标志和中断所需的加载类,并且不会显示我的自定义消息。
我的问题的措辞被标记为"主观"然而,我试图以问题的形式对其进行短语,并匹配我在谷歌搜索的关键词,以找到我即将发布的解决方案。
答案 0 :(得分:3)
删除'返回false'在函数的底部恢复条件。谷歌Chrome已发布安全更新。使用更新偶数false
会触发卸载对话框。
我找到了自己的答案,并认为社区将从我的斗争中受益。
至于消息,不再可以自定义这些消息。此更新导致此问题引发的另一个问题:javascript onbeforeunload not showing custom message