如何检索CKEDITOR.status“准备好”?

时间:2013-08-27 09:01:17

标签: ckeditor

在我的剧本中,我想等待CKEDITOR处于状态ready,然后我才能按照自己的指示行事。所以我查阅了CKEDITOR API并写了以下条件:

if(CKEDITOR.status == "ready"){
 //execute my code when ready
}

但是,状态永远不会从loaded更改为status。显然我甚至没有看到任何其他州。

更具体的任务,我想抓住CKEDITOR完成修改contenteditable =“true”的内联替换的那一刻。那时我想继续使用我的JS代码。

任何线索?

3 个答案:

答案 0 :(得分:58)

如果要在API完全加载时执行代码,请使用CKEDITOR.loaded事件:

CKEDITOR.on( 'loaded', function( evt ) {
    // your stuff here
} );

如果您想在任何新实例准备就绪时执行代码,请使用CKEDITOR.instanceReady事件:

CKEDITOR.on( 'instanceReady', function( evt ) {
    // your stuff here
} );

如果您想在特定实例准备就绪时执行代码,请使用CKEDITOR.editor.instanceReady事件:

CKEDITOR.replace( 'editor', {
    on: {
        instanceReady: function( evt ) {
            // your stuff here
        }
    }
} );

答案 1 :(得分:8)

CKEDITOR中没有ready状态,您可以使用loaded之类的:

if ( CKEDITOR.status == 'loaded' ) {
    // The API can now be fully used.
    doSomething();
}

或使用instanceReady,例如:

CKEDITOR.on('instanceReady', function(evt){ 
   //ready
  //do something
});

答案 2 :(得分:2)

正如@Sudhir所指出的,直接属性值和instanceReady方法之间存在细微差别。

  • 如果您要求在CKEDITOR不仅完成其加载过程时通知,而且还完成了整个后处理,请使用事件监听器。特别是HTML替换和注入。