Estou usando diálogos jquery para apresentar formulários (obtidos via AJAX). Em alguns formulários, estou usando um CKEditor para as áreas de texto. O editor exibe bem no primeiro carregamento.
Quando o usuário cancela a caixa de diálogo, estou removendo o conteúdo para que seja carregado novamente em uma solicitação posterior. O problema é que, depois que a caixa de diálogo é recarregada, o CKEditor afirma que o editor já existe.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
A API inclui um método para destruir editores existentes, e vi pessoas alegando que essa é uma solução:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
Isso não está funcionando para mim, pois recebo um novo erro:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Este erro parece ocorrer em "destroy ()" em vez de "replace ()". Alguém experimentou isso e encontrou uma solução diferente?
É possível 're-renderizar' o editor existente, ao invés de destruí-lo e substituí-lo?
ATUALIZADO Aqui está outra questão que trata do mesmo problema, mas ele forneceu um caso de teste para download .