Я использую диалоги jquery для представления форм (получаемых через AJAX). В некоторых формах я использую CKEditor для текстовых полей. Редактор отлично показывает себя при первой загрузке.
Когда пользователь отменяет диалог, я удаляю содержимое, чтобы оно было загружено свежим при более позднем запросе. Проблема в том, что после перезагрузки диалога CKEditor утверждает, что редактор уже существует.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
API включает в себя метод уничтожения существующих редакторов, и я видел, как люди утверждали, что это решение:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
У меня это не работает, так как вместо этого я получаю новую ошибку:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Эта ошибка, похоже, возникает в «destroy ()», а не в «replace ()». Кто-нибудь испытал это и нашел другое решение?
Можно ли «перерисовать» существующий редактор вместо его уничтожения и замены?
ОБНОВЛЕНО Вот еще один вопрос, связанный с той же проблемой, но он предоставил загружаемый тестовый пример .