Javascript 如何防止有条件地从页面导航出去?
我正在浏览器中实现一个图表编辑器。 如果用户在编辑器中未保存编辑并尝试导航出去,我想警告用户可能会丢失 但是,如果没有未保存的更改,我不希望用这个问题来打扰用户 我发现我可以通过注册onbeforeunload事件来阻止并询问用户Javascript 如何防止有条件地从页面导航出去?,javascript,jquery,html,Javascript,Jquery,Html,我正在浏览器中实现一个图表编辑器。 如果用户在编辑器中未保存编辑并尝试导航出去,我想警告用户可能会丢失 但是,如果没有未保存的更改,我不希望用这个问题来打扰用户 我发现我可以通过注册onbeforeunload事件来阻止并询问用户 $(function() { window.onbeforeunload = function () { return "You have unsaved changes..."; } }); 我不知道我应该怎么做才能不显示此对话框,
$(function() {
window.onbeforeunload = function () {
return "You have unsaved changes...";
}
});
我不知道我应该怎么做才能不显示此对话框,如果没有未保存的更改…要不显示对话框,只需从处理程序返回一个空值。因此,您可以将return
包装在if
语句中:
$(function() {
window.onbeforeunload = function () {
if(hasUnsavedChanges()) {
return "You have unsaved changes...";
}
}
});
发件人:
当此事件返回非void值时,将提示用户
确认页面卸载
您只需返回
null
值即可不显示任何内容:
$(function() {
window.onbeforeunload = function () {
if (anyChanges) {
return "You have unsaved changes...";
} else {
return;
}
}
});
在
else
上,此代码将允许页面以静默方式关闭。您是否有一些代码检查编辑器状态以查看其是否已保存?此处没有足够的信息提供帮助。你必须跟踪正在更改的内容的状态,或者有办法知道用户编辑了他们正在编辑的内容。有趣的是,有些人完全理解这一点。。。显然,我不是在问如何跟踪我的编辑器状态是否脏。连问题的标题都清楚了这一点。谢谢。(我试图用false或true返回,两者都转换为字符串)我将在时间锁过期后接受此选项