Saya menggunakan dialog jquery untuk menyajikan formulir (diambil melalui AJAX). Pada beberapa formulir saya menggunakan CKEditor untuk textareas. Editor menampilkan baik-baik saja pada pemuatan pertama.
Ketika pengguna membatalkan dialog, saya menghapus konten sehingga mereka dimuat segar pada permintaan nanti. Masalahnya adalah, setelah dialog dimuat ulang, CKEditor mengklaim editor tersebut sudah ada.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
API menyertakan metode untuk menghancurkan editor yang ada, dan saya telah melihat orang-orang mengklaim ini adalah solusinya:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
Ini tidak berfungsi untuk saya, karena saya menerima kesalahan baru sebagai gantinya:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Kesalahan ini tampaknya terjadi pada "destroy ()" daripada "replace ()". Adakah yang pernah mengalami ini dan menemukan solusi yang berbeda?
Apakah mungkin untuk 'merender ulang' editor yang ada, daripada menghancurkan dan menggantinya?
DIPERBARUI Berikut adalah pertanyaan lain yang berhubungan dengan masalah yang sama, tetapi dia telah menyediakan kasus uji yang dapat diunduh .