Подтвердить что ты не робот

Как получить CKEDITOR.status "готов"?

В моем script я хотел дождаться, когда CKEDITOR будет в состоянии ready, прежде чем я позволю своим собственным инструкциям идти своим путем. Поэтому я посоветовался с API CKEDITOR и написал следующее условие:

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

Однако статус никогда не изменяется с loaded до status. Видимо, я даже не видел другого государства.

Более конкретная задача, я хотел уловить момент, когда CKEDITOR завершил модификацию встроенной замены contenteditable = "true". Это, когда я хочу продолжить свой JS-код.

Любые подсказки?

4b9b3361

Ответ 1

Если вы хотите выполнить свой код, когда 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
        }
    }
} );

Ответ 2

нет статуса ready в CKEDITOR, вы можете использовать loaded как:

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

или используйте instanceReady, например:

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

Ответ 3

Как отметил @Sudhir, существует небольшое различие между прямым значением атрибута и методом instanceReady.

  • Используйте прослушиватель событий, если вы требуете, чтобы вас уведомили, когда CKEDITOR не только завершил процесс загрузки, но и завершил всю последующую обработку. В частности, замена и вставка HTML.