Estoy usando diálogos de jquery para presentar formularios (obtenidos a través de AJAX). En algunos formularios, estoy usando un CKEditor para las áreas de texto. El editor se muestra bien en la primera carga.
Cuando el usuario cancela el cuadro de diálogo, elimino el contenido para que se carguen nuevos en una solicitud posterior. El problema es que, una vez que se vuelve a cargar el cuadro de diálogo, CKEditor afirma que el editor ya existe.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
La API incluye un método para destruir editores existentes, y he visto personas que afirman que esta es una solución:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
Esto no me funciona, ya que recibo un nuevo error:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Este error parece ocurrir en "destroy ()" en lugar de "replace ()". ¿Alguien ha experimentado esto y ha encontrado una solución diferente?
¿Es posible 'volver a renderizar' el editor existente, en lugar de destruirlo y reemplazarlo?
ACTUALIZADO Aquí hay otra pregunta que trata con el mismo problema, pero ha proporcionado un caso de prueba descargable .