Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在onbeforeunload中检查ace编辑器以查看是否进行了更改_Javascript_Jquery_Ace Editor_Onbeforeunload - Fatal编程技术网

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

Javascript 在onbeforeunload中检查ace编辑器以查看是否进行了更改,javascript,jquery,ace-editor,onbeforeunload,Javascript,Jquery,Ace Editor,Onbeforeunload,我正在尝试使用$(window.on('beforeunload',function(){})和编辑器.session.getUndoManager().isClean()在ace编辑器中,检查用户是否对文档进行了更改,但没有单击“提交”按钮,但由于某些原因,该按钮不起作用代码如下: editor.on('change', function(Isclean ) { var Isclean = editor.session.getUndoManager().isClean();

我正在尝试使用
$(window.on('beforeunload',function(){})
编辑器.session.getUndoManager().isClean()在ace编辑器中,检查用户是否对文档进行了更改,但没有单击“提交”按钮,但由于某些原因,该按钮不起作用代码如下:

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。

代码中有几个问题。在“change”事件处理程序中,函数参数和局部变量都被称为
Isclean


其次,
Isclean
变量对于“beforeunload”事件处理程序不可见。

为了完成此任务,我做了以下工作:

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

我将一些Json预加载到编辑器中,因此除非调用
editor.session.getUndoManager().markClean()
作为最后一个要加载的对象(并且必须是最后一个要加载的对象),它总是布尔值为false。

那么如何在卸载之前将局部变量传递给on?