Если вам нужно уничтожить объект ckeditor и elemnets в DOM ПОСЛЕ вызова AJAX, вы можете сделать это, установив логический параметр для вызова функции destroy (true). Таким образом, он не будет пытаться обновить DOM:
var editor = CKEDITOR.instances[name];
if (editor) { editor.destroy(true); }
CKEDITOR.replace(name);
Я написал 2 функции, чтобы иметь возможность лучше контролировать эти вещи. Обратите внимание, что я объявил переменную до того, как эти функции могут быть использованы, но есть много более простых способов, но этот подход был достаточно хорош для той цели, в которой я нуждался (я использую и мне нужен только один экземпляр):
if(typeof(editor) == 'undefined')
var editor=null;
function ck_delete(editor)
{
if(typeof(editor) != 'undefined' && editor!=null)
editor.destroy();
}
function ck_init(ck_inst_name)
{
var el_id=document.getElementById(ck_inst_name);
if(typeof(el_id) != 'undefined' && el_id!=null)
{
if(typeof(editor) == 'undefined' || editor==null)
{
editor=CKEDITOR.replace( ck_inst_name );
}
else
{
ck_delete(editor);
editor=null;
editor = CKEDITOR.replace( ck_inst_name );
}
}
}
Я также проверяю, существует ли HTML-элемент, который следует заменить, поэтому я не получаю сообщение об ошибке.