私のスクリプトでは、CKEDITORがready
の状態になるのを待ってから、独自の指示を実行しました。それで、私は CKEDITOR API を調べて、次の条件を書きました:
if(CKEDITOR.status == "ready"){
//execute my code when ready
}
ただし、ステータスがloaded
からstatus
に変わることはありません。どうやら私は他の状態を見たこともなかった。
より具体的なタスクとして、CKEDITORがcontenteditable = "true"のインライン置換の変更を完了した瞬間を捉えたかったのです。それが、JSコードを先に進めたいときです。
手がかりはありますか?
APIが完全に読み込まれたときにコードを実行する場合は、 CKEDITOR.loaded
イベント:
CKEDITOR.on( 'loaded', function( evt ) {
// your stuff here
} );
any新しいインスタンスの準備ができたときにコードを実行する場合は、 CKEDITOR.instanceReady
イベント:
CKEDITOR.on( 'instanceReady', function( evt ) {
// your stuff here
} );
特定のインスタンスの準備ができたときにコードを実行したい場合は、 CKEDITOR.editor.instanceReady
イベント:
CKEDITOR.replace( 'editor', {
on: {
instanceReady: function( evt ) {
// your stuff here
}
}
} );
cKEDITORにはready
ステータスはありません。次のようにloaded
を使用できます。
if ( CKEDITOR.status == 'loaded' ) {
// The API can now be fully used.
doSomething();
}
または、次のようにinstanceReady
を使用します。
CKEDITOR.on('instanceReady', function(evt){
//ready
//do something
});
@Sudhirが指摘したように、直接属性値とinstanceReadyメソッドの間にはわずかな違いがあります。