阻止页面卸载,失败.想法



我正在尝试模仿这个网站上的一个功能。但它似乎不起作用。我正试图用jQuery 1.4.4来完成这项工作,我已经在这里和我想出的其他表单上找到了尽可能多的例子。

$(window).bind('beforeunload', function()
{
if(show_unsaved_warning == true)
{
//e.preventDefault();
var exitBeforeSave = confirm('You have unsaved changes');
if(exitBeforeSave == false)
{
return false;
}
}
});

这可以显示确认对话框,但无论您单击"确定"还是"取消",页面仍会加载/重新加载。我需要像堆栈一样防止这种情况,所以如果表单上有更改,我可以提示用户保存更改,以防他们忘记,或者让他们离开。这个等式中有我遗漏的东西吗?还是不可能?

请注意,我意识到这是一个在这里和其他地方的几十个论坛上被问了十几次的问题。如果我能根据我发现的东西拼凑一些东西,否则我就不会问了。我带着一个明显的重复问题来到这里,因为我现在被卡住了。

edit我对代码做了一点修改,以使用确认对话框,然而,问题仍然存在,在firefox上,我实际上导致了一个确定/取消对话框,在单击确定/取消后,firefox会自行创建另一个离开/停留的提示。我怎样才能避免这种行为呢?

为什么使用onbeforeunload的confirm?默认情况下会这样做。

您过时的jQuery版本

$(window).bind('beforeunload', function() {
if(show_unsaved_warning == true) {
return 'You have unsaved changes.';
}
});

jQuery 1.7+

$(window).on('beforeunload', function() {
if(show_unsaved_warning == true) {
return 'You have unsaved changes.';
}
});

jsFiddle

最新更新