我在加载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>
答案 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)
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();
}
答案 8 :(得分:0)
试试这个,它对我有用
var editor = CKEDITOR.instances["your_textarea"];
if (editor) { editor.destroy(true); }