Javascript CKEDITOR在销毁前检查脏

Javascript CKEDITOR在销毁前检查脏,javascript,ckeditor,destroy,Javascript,Ckeditor,Destroy,我有一个创建和管理支持票证的web应用程序。因此,可以在浏览器中的单个页面上同时打开多个选项卡,每个选项卡中都有一个CKEDITOR实例。可以根据需要打开和关闭选项卡,当选项卡关闭时,该选项卡中的任何CKEDITOR实例都将被销毁 下面的代码允许在离开整个页面时检查任何CKEDITOR实例中的更改: function beforeUnload( evt ) { for ( var name in CKEDITOR.instances ) { if ( CKEDITOR.i

我有一个创建和管理支持票证的web应用程序。因此,可以在浏览器中的单个页面上同时打开多个选项卡,每个选项卡中都有一个CKEDITOR实例。可以根据需要打开和关闭选项卡,当选项卡关闭时,该选项卡中的任何CKEDITOR实例都将被销毁

下面的代码允许在离开整个页面时检查任何CKEDITOR实例中的更改:

function beforeUnload( evt ) {
    for ( var name in CKEDITOR.instances ) {
        if ( CKEDITOR.instances[ name ].checkDirty() )
            return evt.returnValue = "You will lose the changes made in the editor.";
    }
}
if ( window.addEventListener ) {
    window.addEventListener( "beforeunload", beforeUnload, false );
} else {
    window.attachEvent( "onbeforeunload", beforeUnload );
}
这非常有效,但是,如果页面上包含CKEDITOR实例的选项卡被关闭,我想在销毁CKEDITOR实例之前执行checkDirty

我要寻找的是能够检测CKEDITOR实例上的“销毁”事件,然后使用checkDirty检查该实例。我找不到的是检测“破坏”事件的方法

非常感谢您的帮助。

您可以使用CKEditor的:

for (var name in CKEDITOR.instances) {
    CKEDITOR.instances[name].on('contentDomUnload', function() {
        // Do here whatever you need
        if (this.checkDirty()) {
            // The instance is dirty
        }
    });
}

在销毁内容DOM结构之前触发事件。

这些选项卡是如何管理的?需要明确的是,您指的是单个dom中的选项卡,而不是不同的浏览器选项卡和页面实例。正确吗?正确,它们是引导选项卡。所有这些都在一个DOM中,而不是在不同的浏览器选项卡中,也不是在不同的页面实例中。谢谢,这太完美了。