フォームを表示するために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.
このエラーは、「replace()」ではなく「destroy()」で発生するようです。誰かがこれを経験し、別の解決策を見つけましたか?
既存のエディターを破棄して置き換えるのではなく、「再レンダリング」することは可能ですか?
更新これ は同じ問題を扱う別の質問ですが、彼はダウンロード可能なテストケースを提供しました。