未捕获[CKEDITOR.editor]实例“html”已存在

时间:2010-02-22 10:09:07

标签: ckeditor

我在加载CKEDITOR时遇到问题。我已经完成了这里所描述的所有内容:http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Integration但无论如何我收到错误(Google Chrome 4.x)未捕获[CKEDITOR.editor]实例“html”已经存在。 这是我的代码:

<script type="text/javascript" src="/engine/jq.js"></script> 
<script type="text/javascript" src="/engine/cke/ckeditor.js"></script> 
<script type="text/javascript" src="/engine/cke/adapters/jquery.js"></script>

<textarea class="jquery_ckeditor" name="html" id="html" rows="10">text</textarea>
<script type="text/javascript">
    if (CKEDITOR.instances['html']) { CKEDITOR.remove(CKEDITOR.instances['html']); // with or without this line of code - rise an error }
    CKEDITOR.replace('html');
</script>

9 个答案:

答案 0 :(得分:7)

检查一下:

if (CKEDITOR.instances['html']) { 
    delete CKEDITOR.instances['html'] 
};

CKEDITOR.replace('html');

答案 1 :(得分:4)

删除class='ckeditor',因为它正在触发自动替换系统。

答案 2 :(得分:4)

使用jquery ckeditor适配器 - 我能够使用此函数重新初始化ajax内容中的ckeditor textareas。

function initCKEditor() {
    $('.wysiwyg').ckeditor(function(e){
            delete CKEDITOR.instances[$(e).attr('name')];
        },{
            toolbar:
                [
                    ['Bold','Italic','Underline','Strike','-','NumberedList','BulletedList','-','Paste','PasteFromWord','-','Outdent','Indent','-','Link','-','Maximize','-','Source']
                ],
            skin: 'office2003'
        }
    );  
}

答案 3 :(得分:1)

相同的错误,尽管使用jQuery适配器。检查textarea的类。据我所知,所有带有'ckeditor'类的文本区域都会自动转换为编辑器。所以要么不打扰用javascript设置它或改变类。

答案 4 :(得分:1)

如果你使用jQuery

http://ckeditor.com/blog/CKEditor_for_jQuery有一个修复

//从页面中删除编辑器 $( 'textarea的')。CKEditor的(函数(){ this.destroy(); });

答案 5 :(得分:0)

您的页面有一个html容器,请尝试重命名您的textarea?

<textarea class="jquery_ckeditor" name="editor" id="editor" rows="10">text</textarea>
<script type="text/javascript">
    CKEDITOR.replace('editor');
</script>

答案 6 :(得分:0)

适合我的解决方案:在Ajax视图中,有两个控件

@Html.TextAreaFor(model => model.offreJob.profile, new { @class = "input_text_area_nofloat", @style = "width:590px", @id = "ck_profile" })

@Html.TextAreaFor(model => model.offreJob.description_job, new { @class = "input_text_area_nofloat", @style = "width:590px", @id = "ck_description" })

我使用以下脚本:

        <script>
        if (CKEDITOR.instances['ck_profile']) {
            delete CKEDITOR.instances['ck_profile'];
        }
        CKEDITOR.replace('ck_profile');

        if (CKEDITOR.instances['ck_description']) {
            delete CKEDITOR.instances['ck_description'];
        }
        CKEDITOR.replace('ck_description');
    </script>

答案 7 :(得分:0)

试试这个,希望它有效,它对我有用。

for(CKEDITOR.instances中的html [&#39; html&#39;)

{

CKEDITOR.instances [html] .destroy();

}

http://dev.ckeditor.com/ticket/9862#no1

答案 8 :(得分:0)

试试这个,它对我有用

var editor = CKEDITOR.instances["your_textarea"]; 
if (editor) { editor.destroy(true); }