我正在浏览器中实现图表编辑器。 如果用户在编辑器中未保存编辑并尝试导航,我想警告用户可能会丢失。
但是如果没有未保存的更改,不希望打扰用户这个问题。
我发现我可以通过注册onbeforeunload事件来阻止并询问用户。
$(function() {
window.onbeforeunload = function () {
return "You have unsaved changes...";
}
});
如果没有未保存的更改,我无法找到不显示此对话框
答案 0 :(得分:4)
要不显示对话框,您所要做的就是从处理程序返回一个void值。所以你可以将return
包装在if
语句中:
$(function() {
window.onbeforeunload = function () {
if(hasUnsavedChanges()) {
return "You have unsaved changes...";
}
}
});
来自here:
当此事件返回非void值时,系统会提示用户 确认页面卸载
答案 1 :(得分:0)
您只需返回null
值即可显示任何内容:
$(function() {
window.onbeforeunload = function () {
if (anyChanges) {
return "You have unsaved changes...";
} else {
return;
}
}
});
在else
上,此代码将允许页面静默关闭。