为什么beforeunload总是被触发?

时间:2017-04-12 10:22:10

标签: javascript jquery

我有一个表格,当-some-元素聚焦时会发生变化 我想在离开页面时收到警告。所以我留下一面旗帜告诉我这些元素何时发生了变化 问题是警告“此页面要求您确认要离开” - 始终是提示;

function checkSave(){
    return PageWasChanged; // it is correct, checked
}
$(window).on("beforeunload", function (eve) {
    if (checkSave()) {
        return true;
    }
    else {
        return false;
    }
});

1 个答案:

答案 0 :(得分:1)

beforeunload与其他事件不同。它的处理程序应该返回undefined(不显示提示符)或字符串(以前用作提示文本,但不在现代浏览器中)。

所以:

$(window).on.("beforeunload", function() {
    if (!checkSave()) {
        return "You have unsaved changes.";
    }
});

或没有jQuery:

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