Я використовую діалоги 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.
Здається, ця помилка виникає на "знищити ()", а не на "замінити ()". Хтось із цим переживав і знайшов інше рішення?
Чи можливо "повторно відтворити" існуючий редактор, а не знищити та замінити його?
ОНОВЛЕНО Ось ще одне питання, що стосується тієї ж проблеми, але він запропонував тестовий зразок, який можна завантажити .