CKEditor工具栏配置不起作用

时间:2016-04-19 12:22:55

标签: javascript ckeditor ckfinder

我最近开始使用CKEditor,但工具栏中有我们不会使用的功能。

我尝试从在线工具栏配置中复制代码,但工具栏无法更改。

我的config.js文件如下所示:

CKEDITOR.editorConfig = function( config ) {
    config.toolbarGroups = [
        { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
        { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
        { name: 'editing', groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
        { name: 'forms', groups: [ 'forms' ] },
        '/',
        { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
        { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph' ] },
        { name: 'links', groups: [ 'links' ] },
        { name: 'insert', groups: [ 'insert' ] },
        '/',
        { name: 'styles', groups: [ 'styles' ] },
        { name: 'colors', groups: [ 'colors' ] },
        { name: 'tools', groups: [ 'tools' ] },
        { name: 'others', groups: [ 'others' ] },
        { name: 'about', groups: [ 'about' ] }
    ];

    config.removeButtons = 'Save,NewPage,Preview,Print,Replace,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Superscript,Subscript,Language,Anchor,Flash,PageBreak,About';
};

直接来自配置工具的副本。 在上面之后,我尝试将代码粘贴到初始化函数中,如下面的块:

jQuery(function() 
{   
    var editor = CKEDITOR.replace( 'message',
    {
        extraPlugins : 'stylesheetparser',
        extraPlugins : 'filebrowser',
        extraPlugins : 'popup',
        //contentsCss : '<?= base_url(); ?>css/layout.css',
         config.toolbarGroups = [
            { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
            { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
            { name: 'editing', groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
            { name: 'forms', groups: [ 'forms' ] },
            '/',
            { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
            { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph' ] },
            { name: 'links', groups: [ 'links' ] },
            { name: 'insert', groups: [ 'insert' ] },
            '/',
            { name: 'styles', groups: [ 'styles' ] },
            { name: 'colors', groups: [ 'colors' ] },
            { name: 'tools', groups: [ 'tools' ] },
            { name: 'others', groups: [ 'others' ] },
            { name: 'about', groups: [ 'about' ] }
        ],
        config.removeButtons = 'Save,NewPage,Preview,Print,Replace,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Superscript,Subscript,Language,Anchor,Flash,PageBreak,About'
    });

    CKFinder.setupCKEditor(editor);
});

我也尝试过简单地显示工具栏的一部分:

CKEDITOR.editorConfig = function( config ) {
         config.toolbar = [
        { name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] }
    ];

    // Toolbar groups configuration.
    config.toolbarGroups = [
        { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }
    ];
};

以上都没有改变工具栏中的任何内容,因此我不确定是否忽略了某些内容。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

请确保正确定义配置 - 请查看Setting CKEditor Configuration文章以获取一些代码示例。你正在做的一些错误:

  • 混淆config.optionNameoptionName
  • 多次声明extraPlugins - 您应该将所有额外的插件放入一个声明中:config.extraPlugins = 'myplugin,anotherplugin';

另请查看一些CKEditor SDK samples示例 - 如果您打开其中任何一个(例如this one),请向下滚动到“获取示例源代码”部分并获取要复制的源代码。

最后但同样重要的是,使用浏览器的JavaScript控制台检查错误并在每次更改后清除缓存!

最后,下载一个膨胀的CKEditor包然后删除配置中的插件/按钮是没有意义的 - 更好地在CKBuilder中创建自定义版本。

答案 1 :(得分:1)

include:
<script type="text/javascript" src="js/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="js/ckeditor/config.js"></script>

<textarea id="user_message"></textarea>
<script type="text/javascript">
var toolbarGroups = [
    { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
    { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
    { name: 'editing', groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
    { name: 'forms', groups: [ 'forms' ] },
    '/',
    { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
    { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph' ] },
    { name: 'links', groups: [ 'links' ] },
    { name: 'insert', groups: [ 'insert' ] },
    '/',
    { name: 'styles', groups: [ 'styles' ] },
    { name: 'colors', groups: [ 'colors' ] },
    { name: 'tools', groups: [ 'tools' ] },
    { name: 'others', groups: [ 'others' ] },
    { name: 'about', groups: [ 'about' ] }
];

var initEditor = function() {
  return CKEDITOR.replace( 'user_message',{
    toolbar : 'Basic',
    uiColor : '#9AB8F3',
    toolbarGroups,
   });
}
initEditor();
</script>

演示 enter image description here

答案 2 :(得分:0)

我的CKEditor config.js更改没有反映在我的工具栏中,直到我将匹配的路径与Samples相同。例如:工作样本有这条路径:

ckeditor\samples\index.html
ckeditor\config.js

所以我用ckeditor制作了我的工作网页应用程序:

rootwebfolder/ckeditor/config.js
rootwebfolder/mywebpage.php
之前,我把ckeditor放在与root相同的级别上,但我把它移到了root中。 当然我必须更改相对路径语句,现在这是[并显示使div能够显示CKEditor工具栏的其他代码]:

echo "<script type='text/javascript'> window.CKEDITOR_BASEPATH ='mydomain/mainfolder/rootwebfolder/ckeditor/';</script>";
echo "<script type='text/javascript' src='mydomain/mainfolder/rootwebfolder/ckeditor/ckeditor.js'></script>";
echo "<script type='text/javascript' src='mydomain/mainfolder/rootwebfolder/ckeditor/config.js'></script>";
echo "<div id = 'divname' name = 'divname' class = 'ckeditor' style='visibility:hidden; height:415px'></div>";
echo "<script type='text/javascript'>CKEDITOR.replace('divname');</script>";

我希望这有助于某人!