CKEDITOR 在销毁前检查脏
CKEDITOR checkDirty before Destroy
我有创建和管理支持工单的网络应用程序。因此,可以在浏览器的单个页面上一次打开多个选项卡,并且每个选项卡中都是 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 实例上的 'destroy' 事件,然后使用 checkDirty 检查该实例。我找不到的是检测 'destroy' 事件的方法。
如有任何帮助,将不胜感激。
您可以为此使用 CKEditor 的 contentDomUnload
event:
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 结构被销毁之前触发。
我有创建和管理支持工单的网络应用程序。因此,可以在浏览器的单个页面上一次打开多个选项卡,并且每个选项卡中都是 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 实例上的 'destroy' 事件,然后使用 checkDirty 检查该实例。我找不到的是检测 'destroy' 事件的方法。
如有任何帮助,将不胜感激。
您可以为此使用 CKEditor 的 contentDomUnload
event:
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 结构被销毁之前触发。