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 ()"에서 발생하는 것 같습니다. 누구든지 이것을 경험하고 다른 해결책을 찾았습니까?
기존 편집기를 파괴하고 교체하는 대신 '다시 렌더링'할 수 있습니까?
업데이트 됨 동일한 문제를 다루는 또 다른 질문이 있지만 그는 다운로드 가능한 테스트 케이스를 제공했습니다 .