我已经在本论坛和CKEditor网站上查看过有关此主题的几个问题,但到目前为止没有任何帮助。首先,我在SharePoint 2010网站上运行CKEditor 4.3.2,在jQuery UI模式对话框中使用内联编辑器。将CKEditor添加到对话框是没有痛苦的,但我不能说同样的设置更苗条的工具栏。这是我到目前为止所做的:
slimConfig.js
CKEDITOR.editorConfig = function(config) {
config.toolbar = [
{name: "basicstyles", items: ["Bold", "Italic", "Underline", "Strike", "Subscript", "Superscript", "-", "RemoveFormat"]},
{name: "paragraph", items: ["NumberedList", "BulletedList"]}
];
}
源JavaScript
setToolbar("notes");
setToolbar("access");
//. . .[several other fields]. . .
function setToolbar(divName) {
CKEDITOR.replace(divName, {customConfig: "/customConfigs/slimConfig.js"});
}
此外,我已将目标字段设置为div,使用contenteditable
设置为true,如下所示:
<div id="notes" contenteditable="true"></div>
脚本似乎运行良好,直到遇到ckeditor.js第308行的异常,其中错误文本为“编辑器实例已附加到提供的元素”。经过几个步骤后,它返回到第308行的同一区域,此时我得到一个终端异常,并显示消息“异常抛出但未捕获。”
我相信我现在已经正确设置了一切,但不知道该怎么做这个错误。有没有人有设置自定义工具栏的经验?
答案 0 :(得分:1)
默认情况下,CKEditor会使用内联编辑器替换contenteditable="true"
的所有元素。因此,当您尝试再次替换它时,它会引发错误,因为它没有意义。
如果您想完全控制编辑器,请将CKEDITOR.disableAutoInline设置为false
并手动处理所有实例。当然,您始终可以在CKEDITOR.instances
对象中找到您的实例,并根据需要调用editor.destroy()
。