如何防止从页面导航_conditionally_?

时间:2016-02-26 16:48:53

标签: javascript jquery html

我正在浏览器中实现图表编辑器。 如果用户在编辑器中未保存编辑并尝试导航,我想警告用户可能会丢失。

但是如果没有未保存的更改不希望打扰用户这个问题。

我发现我可以通过注册onbeforeunload事件来阻止并询问用户。

$(function() {
    window.onbeforeunload = function () {
        return "You have unsaved changes...";
    }
});

如果没有未保存的更改,我无法找到不显示此对话框

2 个答案:

答案 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上,此代码将允许页面静默关闭。