2017-02-16 15 views
0

У меня есть функция под названием fillFields и вызова CKEDITOR.instances.myinstance.insertHtml('<p>My stuff</p>'); внутри, что не будет работать, но следующий будет:CKEditor не работает, за исключением SetTimeout

setTimeout(function(){ 
     CKEDITOR.instances.myinstance.insertHtml('<p>My stuff</p>'); 
    }, 1); 

Любые подсказки, почему это?

ответ

1

Если вы пытаетесь ввести данные в CKEditor после его инициализации, вам нужно подождать, пока экземпляр CKEditor будет загружен и готов к взаимодействию. Используйте instanceReady событие:

CKEDITOR.instances.myinstance.on('instanceReady', function(evt) { 
    evt.editor.insertHtml('<p>My stuff</p>'); 
}); 
+0

Это не тот случай, но я определил, в чем проблема была из вашего ответа. Я вызывал setData для сброса редактора раньше, и поскольку он асинхронный, он будет вызван после insertHtml, тем самым сбросив его. Спасибо. –

0

Проблема обусловлена ​​сбросом редактора перед установкой HTML с помощью вызова setData и не используя обратный вызов затем вызвать insertHtml, который привел к setData сброса моего редактора после того, как вставил HTML.