javascript - 替换 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 未定义相同的错误。编辑器本身可以工作并且不会在浏览器控制台中抛出任何错误。
解决方案
我有同样的错误:
类型错误:a 未定义
我将我的问题追溯到未找到的元素。特别是对我来说,当我的 JS 代码(类似于您的代码)运行时,我的文档还没有完全加载。
我会调查两件事:
- 确保文档中有 ID='editor2' 的元素。
在文档准备好之前不要运行你的 JS。通过将其包装在 $( document ).ready() 中来做到这一点。例子:
$( document ).ready(function() { var instance = CKEDITOR.instances['editor2'] instance.config.removeButtons = "" instance.destroy() CKEDITOR.replace('editor2') });
推荐阅读
- java - 在一种方法中重构大量变量初始化的良好实践
- r - 弹性表的给定单元格中的多个超链接
- ruby-on-rails - Rails 5:我如何循环遍历每个做的哈希
- php - 如何在 PHP 联系表单中添加段落?
- tcl - 如何将来自串口的传入变量保存到列表中
- go - 如何从另一个函数调用 dbmap.Insert(interface{})?
- mysql - 将内部连接结果合并到一列
- python - XGBoost 中的偏移如何在 binary:logistic 目标函数中处理
- socket.io - 昂贵的 aws 负载均衡器,可能设置错误
- html - 如何用我的 html href 代码解决这个问题?