CKeditor的实例已经存在

时间:2014-04-09 08:54:14

标签: jquery ckeditor

我在堆栈溢出上发现了一些类似的帖子,但没有一个有效的答案。

我在页面上有几个标签,根据他们点击的标签,他们会看到一个特定的标签。在其中一个标签中有一个CKeditor,它是在点击li时启动的。当用户将该特定选项卡单击到另一个选项卡上,然后返回时会出现以下错误:

  

未捕获编辑器实例“employDesc”已附加到   提供了元素。

这是JS:

    $('.addVacancy').click( function() {
        if(CKEDITOR.instances.employDesc)  {
            alert('instance exists');
            var editor = CKEDITOR.instances[employDesc];
            if (editor) { 
                editor.destroy(true); 
            } 
            alert('distroyed');
        }   
        CKEDITOR.replace('employDesc');
    });

两个警报都会出现,但随着控制台中出现错误而中断。任何人都可以帮忙吗?

由于

4 个答案:

答案 0 :(得分:13)

您尝试使用名为employDesc的变量,您应该使用CKEDITOR.instances["employDesc"]; 或者只是

$('.addVacancy').click( function() {
    var editor = CKEDITOR.instances.employDesc;
    if (editor) {
        alert('instance exists');
        editor.destroy(true); 
        alert('destroyed');
    }   
    CKEDITOR.replace('employDesc');
});

它与您尝试的相同。

答案 1 :(得分:1)

if (CKEDITOR.instances['tresc']) {
    CKEDITOR.remove(CKEDITOR.instances['tresc']);
} else{
    CKEDITOR.replace( 'tresc');
}

答案 2 :(得分:0)

我找不到任何在线发布的解决方案。但这对我有用:

var notes = 'div-name';
$('#'+notes).html('');
CKEDITOR.appendTo( notes );

而不是CKEDITOR.replace,我使用了CKEDITOR.appendTo

希望这能为一些可怜的灵魂节省一些宝贵的时间。

答案 3 :(得分:0)

我正在使用类似这样的代码来检查编辑器之前是否未定义,创建一个新实例。我认为这比我尝试过的更好。

var editor = CKEDITOR.instances.['employDesc'];
    if (!editor){
        CKEDITOR.replace('employDesc');
    }