首页 > 解决方案 > 替换 CKEditor 4.10 中的配置属性:a 未定义

问题描述

在某些专有的第三方应用程序中拥有 CKEditor 的实例,我想替换一些配置参数以进行自定义。例如,一些工具栏按钮被默认删除,我想让所有的可见。

我尝试了不同的东西,比如

var instance = CKEDITOR.instances['editor2']
instance.config.removeButtons = ""
instance.destroy()
CKEDITOR.replace('editor2')

我在这里找到了,但总是出现以下错误:

类型错误:a 未定义

发现一些 SO queststions 这与 Id 中的前导 # 有关,但我没有它,并且在使用浏览器开发人员工具查看实例时存在该实例:

> CKEDITOR.instances
Object { editor1: {…}, editor2: {…} }

还尝试了对象的以下 ID 而不是editor2

> CKEDITOR.instances.editor2.id
"cke_54"

使用替换

CKEDITOR.replace('editor2', {removeButtons: ''})

但是所有这些都不起作用,我总是得到与 a 未定义相同的错误。编辑器本身可以工作并且不会在浏览器控制台中抛出任何错误。

标签: javascriptckeditorckeditor4.x

解决方案


我有同样的错误:

类型错误:a 未定义

我将我的问题追溯到未找到的元素。特别是对我来说,当我的 JS 代码(类似于您的代码)运行时,我的文档还没有完全加载。

我会调查两件事:

  1. 确保文档中有 ID='editor2' 的元素。
  2. 在文档准备好之前不要运行你的 JS。通过将其包装在 $( document ).ready() 中来做到这一点。例子:

    $( document ).ready(function() { var instance = CKEDITOR.instances['editor2'] instance.config.removeButtons = "" instance.destroy() CKEDITOR.replace('editor2') });


推荐阅读