ckeditor自定义工具栏配置



我在这个论坛和CKEditor网站上查看了有关此主题的几个问题,但到目前为止,没有任何帮助。首先,我在SharePoint 2010网站上使用jQuery UI模式对话框中的内联编辑器运行CKEditor 4.3.2。在对话框中添加CKeditor是无痛的,但是我不能说设置纤细工具栏也是如此。这是我到目前为止所做的:

  1. slimconfig.js

    CKEDITOR.editorConfig = function(config) {
        config.toolbar = [
            {name: "basicstyles", items: ["Bold", "Italic", "Underline", "Strike", "Subscript", "Superscript", "-", "RemoveFormat"]},
            {name: "paragraph", items: ["NumberedList", "BulletedList"]}
        ];
    }
    
  2. 源javascript

    setToolbar("notes");
    setToolbar("access");
    //. . .[several other fields]. . .
    function setToolbar(divName) {
        CKEDITOR.replace(divName, {customConfig: "/customConfigs/slimConfig.js"});
    }
    

此外,我使用contenteditable设置为true,将目标字段设置为DIVS,例如:

<div id="notes" contenteditable="true"></div>

该脚本似乎运行良好,直到在ckeditor.js第308行上达到例外,其中错误文本是"编辑器实例已经连接到提供的元素"。再过几步之后,它返回到第308行的同一区域,此时我得到了一个终端例外,并带有"异常抛出且未抓住。"

我相信我现在已经正确设置了一切,但不知道该错误该怎么办。是否有人有设置自定义工具栏的经验?

默认情况下,ckeditor将contenteditable="true"的所有元素替换为Inline编辑器。因此,当您尝试再次替换它时,它会丢弃错误,因为它没有意义。

如果您想完全控制编辑器,请将ckeditor.disableautoinline设置为false,并手动照顾所有实例。当然,您随时可以在CKEDITOR.instances对象中找到您的实例,并在愿意的情况下调用editor.destroy()

请参阅http://docs.ckeditor.com/#!/guide/dev_inline

最新更新