Leyendo a través del CKEditor documentation, veo que tienen una opción para destruir una instancia con CKEDITOR.instances.instanceName.destroy();
. Sin embargo, si el DOM ha cambiado, y toda la estructura WYSIWYG DOM se ha eliminado, me sale el siguiente error en Chrome:CKEditor: destruya una instancia cuando se haya eliminado el nodo DOM
Uncaught TypeError: Cannot read property 'document' of null
... y el siguiente en Firefox:
i.contentWindow is null
¿Hay alguna forma de evitar esto?
Debido a la forma en que está estructurada mi aplicación (carga de contenido a través de AJAX), no puedo llamar al .destroy()
cuando los elementos todavía están en la página.
Esto resolvió un problema similar (¿el mismo?) Para mí (reemplazando ckeditor basado en el retorno de la llamada AJAX) pero aún obtengo el TypeError no detectado (lo mismo que en el OP). No estoy seguro de si hay algún efecto secundario, pero me gustaría deshacerme del mensaje de error. Mi código para cargar el editor es:
window.makeCkEditor = function(e, w, h) { var cki, config, ei; ei = CKEDITOR.instances[e]; if (ei) ei.destroy(true); config = { width: w, height: h }; return cki = CKEDITOR.replace(e, config); };
¿Alguna idea sobre cómo puedo deshacerme del msg? –@KenThompson: Tengo un enfoque un poco diferente, pero ¿has intentado destruir el objeto ck antes de la llamada AJAX? –
destroy (true) parece funcionar:) – bjunix