How to retrieve the CKEDITOR.status “ready”?

自古美人都是妖i 提交于 2019-11-27 01:34:11

问题


In my script, I wanted to wait for the CKEDITOR to be in state ready before I let my own instructions go their way. So I consulted the CKEDITOR API and wrote the following condition:

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

However, the status never ever changes to from loaded to status. Apparently I didn even see any other state.

More task specific, I wanted to catch the moment when CKEDITOR has completed modifying the inline replacing of contenteditable="true". That's when I want to go ahead with my JS code.

Any clues?


回答1:


If you want to execute your code when the API is fully loaded, use CKEDITOR.loaded event:

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

If you want to execute your code when any new instance is ready, use CKEDITOR.instanceReady event:

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

If you want to execute your code when a particular instance is ready, then use CKEDITOR.editor.instanceReady event:

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



回答2:


there's no ready status in CKEDITOR, you can use loaded like:

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

or use instanceReady, like:

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



回答3:


As @Sudhir pointed out, there is a slight difference between the direct attribute value and the instanceReady method.

  • Use the event listener if you demand to be notified when CKEDITOR has not only completed its loading process, but also has completed the entire after-processing. In particular the HTML replacement and injection.


来源:https://stackoverflow.com/questions/18461206/how-to-retrieve-the-ckeditor-status-ready

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!