CKEditor 新实例总是卸载
CKEditor New Instance always unloaded
我在我的 Angular 应用程序中使用 CKEditor,并且有一个视图会在用户每次访问新模型时重新加载我的 CKEditor 实例。
我正在使用以下 JS 来初始化编辑器:
var initEditor = function() {
$('.js-editor-wrap').html("<textarea id='editor'></textarea>");
var editor = CKEDITOR.replace('editor', {});
editor.on('loaded', function() {
console.log('editor loaded');
});
editor.on('instanceReady', function() {
console.log('instance ready')
});
}
以及破坏编辑器的以下内容:
var destroyEditor = function() {
if (CKEDITOR.instances['editor']) {
CKEDITOR.instances['editor'].destroy(true);
$('#editor').off().remove();
}
}
第一个编辑器初始化按预期工作,但随后的初始化创建了一个状态为 "unloaded" 的编辑器实例,该实例永远不会触发 "loaded" 或 "instanceReady" 事件。我在控制台中没有看到任何错误。
知道是什么原因造成的吗?
这绝对是与以下问题类似的问题,但差异很大,我认为它有理由提出自己的问题:CKEditor instance already exists
经过更多的挖掘并感谢 Jey Dwork 的 jsfiddle,我弄清楚了问题出在哪里。我的 CKEditor 配置文件添加了几个插件,这些插件引用了不正确命名的 lang 文件。出于某种原因,当这些插件一起包含时,它们会导致编辑器在第二次初始化期间无法完全加载。
删除 lang 文件并在插件定义中引用它们解决了这个问题。很遗憾没有围绕此触发一些错误。一切都很好,但结局很好。
我在我的 Angular 应用程序中使用 CKEditor,并且有一个视图会在用户每次访问新模型时重新加载我的 CKEditor 实例。
我正在使用以下 JS 来初始化编辑器:
var initEditor = function() {
$('.js-editor-wrap').html("<textarea id='editor'></textarea>");
var editor = CKEDITOR.replace('editor', {});
editor.on('loaded', function() {
console.log('editor loaded');
});
editor.on('instanceReady', function() {
console.log('instance ready')
});
}
以及破坏编辑器的以下内容:
var destroyEditor = function() {
if (CKEDITOR.instances['editor']) {
CKEDITOR.instances['editor'].destroy(true);
$('#editor').off().remove();
}
}
第一个编辑器初始化按预期工作,但随后的初始化创建了一个状态为 "unloaded" 的编辑器实例,该实例永远不会触发 "loaded" 或 "instanceReady" 事件。我在控制台中没有看到任何错误。
知道是什么原因造成的吗?
这绝对是与以下问题类似的问题,但差异很大,我认为它有理由提出自己的问题:CKEditor instance already exists
经过更多的挖掘并感谢 Jey Dwork 的 jsfiddle,我弄清楚了问题出在哪里。我的 CKEditor 配置文件添加了几个插件,这些插件引用了不正确命名的 lang 文件。出于某种原因,当这些插件一起包含时,它们会导致编辑器在第二次初始化期间无法完全加载。
删除 lang 文件并在插件定义中引用它们解决了这个问题。很遗憾没有围绕此触发一些错误。一切都很好,但结局很好。