检查onbeforeunload中的ace编辑器以查看是否进行了更改

时间:2016-04-29 22:48:11

标签: javascript jquery ace-editor onbeforeunload

我正在尝试使用ace编辑器中的$(window).on('beforeunload', function(){});editor.session.getUndoManager().isClean();来检查用户是否对文档进行了更改但未单击“提交”按钮但由于某种原因它没有“ t work这是代码:

editor.on('change', function(Isclean ) {
        var Isclean = editor.session.getUndoManager().isClean();
    });
var submitting = false;

$(window).on('beforeunload', function(){
    if (submitting == false && Isclean == false) {
            return "You have made some changes in the editor.";
    };
});

但无论出于何种原因,Isclean总是返回一个true的布尔值。

2 个答案:

答案 0 :(得分:1)

代码存在一些问题。在你的改变'事件处理程序,函数参数和局部变量都被称为Isclean

其次,您的' beforeunload'之前看不到Isclean变量。事件处理程序。

答案 1 :(得分:1)

为了完成这项任务,我做了:

    $(window).bind("load", function() {
    editor.session.getUndoManager().markClean();
});

我正在将一些Json预加载到编辑器中,所以除非我调用editor.session.getUndoManager().markClean();作为最后一个要加载的东西(并且它是最后要加载的东西),它总是布尔值为false。