Javascript 即使在提交更改时,CKEditor也会在保存前退出时发出警报

Javascript 即使在提交更改时,CKEditor也会在保存前退出时发出警报,javascript,forms,ckeditor,Javascript,Forms,Ckeditor,我正在使用checkdirty函数在退出前检查我的ckeditor是否有任何更改。它工作正常,但即使在我提交更改时,警报也会出现。我要更改什么代码,以及从何处获取此提交按钮以跳过检查并仅保存更改 这是我的密码 for ( var name in CKEDITOR.instances ) { if(submit_it) return false; if ( CKEDITOR.instances[ name ].checkDirty() ) { re

我正在使用checkdirty函数在退出前检查我的ckeditor是否有任何更改。它工作正常,但即使在我提交更改时,警报也会出现。我要更改什么代码,以及从何处获取此提交按钮以跳过检查并仅保存更改

这是我的密码

for ( var name in CKEDITOR.instances ) {
    if(submit_it)
        return false;

    if ( CKEDITOR.instances[ name ].checkDirty() ) {
        return evt.returnValue = "You will lose the changes made in the editor.";
    }
}
}

var submit_it = false;

if ( window.addEventListener )
    window.addEventListener( "beforeunload", beforeUnload, false );
else
    window.attachEvent( "onbeforeunload", beforeUnload );
下面是我头脑中的javascript代码

var warn_on_leave = false; 

CKEDITOR.on('currentInstance', function() {                
    try { 
        CKEDITOR.currentInstance.on('key', function() {        
            warn_on_leave = true; 
        }); 
    } catch (err) { }                                        
});

$(document.activeElement).submit(function() {   
    warn_on_leave = false; 
});

$(window).bind('beforeunload', function() { 
    if(warn_on_leave) { 
        return 'Attention: Your text has not been saved!'; 
    } 
}); 
这是我的提交按钮:

<input type="image" src="button_update.gif" border="0" alt="Update" name="udpate" title=" Update ">

我遇到了类似的问题,在谷歌搜索了2个小时后,我找到了一个解决方案,我所做的是在执行save命令之前注册一个事件:

var saved = false;

CKEDITOR.replace('#myTextArea', options);

CKEDITOR.plugins.registered['save'] = {
    init: function (editor) {
        editor.on( 'beforeCommandExec', function(event)
        {
            if (event.data.name === 'save') {
                saved = true;
            }
        });
    }
};

$(window).on('beforeunload', function () {
    if (saved === false) {
        if (CKEDITOR.currentInstance.checkDirty() === true) {
            return 'You have some unsaved changes on this page, are you sure you want to leave?';
        }
    }
});

虽然这是一个非常古老的问题,但我认为我的回答会对某些人有所帮助。

您的第一个代码有语法错误,可能是由于缺少一行函数定义而导致的复制粘贴问题。你能检查代码吗?另外,你的变量
submit\u it
永远不会被赋值为true。变量的意义是什么?