我在堆栈溢出上发现了一些类似的帖子,但没有一个有效的答案。
我在页面上有几个标签,根据他们点击的标签,他们会看到一个特定的标签。在其中一个标签中有一个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');
});
两个警报都会出现,但随着控制台中出现错误而中断。任何人都可以帮忙吗?
由于
答案 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');
}