Tôi đang sử dụng hộp thoại jquery để trình bày biểu mẫu (được tìm nạp qua AJAX). Trên một số biểu mẫu, tôi đang sử dụng CKEditor cho các textareas. Trình chỉnh sửa hiển thị tốt trong lần tải đầu tiên.
Khi người dùng hủy hộp thoại, tôi sẽ xóa nội dung để chúng được tải mới theo yêu cầu sau này. Vấn đề là, khi hộp thoại được tải lại, CKEditor tuyên bố rằng trình chỉnh sửa đã tồn tại.
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
API bao gồm một phương pháp để hủy các trình chỉnh sửa hiện có và tôi đã thấy mọi người khẳng định đây là một giải pháp:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
Điều này không hiệu quả với tôi, vì tôi nhận được một lỗi mới thay thế:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
Lỗi này dường như xảy ra trên "tiêu diệt ()" thay vì "thay thế ()". Có ai đã trải qua điều này và tìm thấy một giải pháp khác nhau?
Có thể 'hiển thị lại' trình chỉnh sửa hiện có, thay vì phá hủy và thay thế nó không?
CẬP NHẬT Đây là một câu hỏi khác giải quyết vấn đề tương tự, nhưng anh ấy đã cung cấp một trường hợp thử nghiệm có thể tải xuống .