J'utilise des dialogues jquery pour présenter des formulaires (récupérés via AJAX). Sur certains formulaires, j'utilise un CKEditor pour les zones de texte. L'éditeur affiche bien sur le premier chargement.
Lorsque l'utilisateur annule la boîte de dialogue, je supprime le contenu afin qu'il soit chargé à nouveau lors d'une demande ultérieure. Le problème est qu'une fois la boîte de dialogue rechargée, le CKEditor affirme que l'éditeur existe déjà.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
L'API comprend une méthode pour détruire les éditeurs existants, et j'ai vu des gens affirmer qu'il s'agissait d'une solution:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
Cela ne fonctionne pas pour moi, car je reçois une nouvelle erreur à la place:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Cette erreur semble se produire sur le "destroy ()" plutôt que le "replace ()". Quelqu'un a-t-il vécu cela et trouvé une solution différente?
Est-il possible de «re-rendre» l'éditeur existant, plutôt que de le détruire et de le remplacer?
MISE À JOUR Voici une autre question traitant du même problème, mais il a fourni un cas de test téléchargeable .