CKEditor 5 InlineEditor - 如何配置工具栏?

时间:2017-10-20 20:23:00

标签: ckeditor toolbar ckeditor5

我正在尝试使用CKEditor 5 InlineEditor。我想修改工具栏以添加其他选项。例如,以下脚本:

<script type="text/javascript">
InlineEditor
    .create( document.querySelector( '#personal-life', {
        toolbar: [ 'headings', 'bold', 'italic', 'underline', 'link', 'bulletedList', 'numberedList', 'blockQuote' ],
    } ) )
    .catch( error => {
    console.error( error );
} );
</script>

它仍显示默认工具栏,而不是指定的工具栏。文档中的示例显示了ClassicEditor。是否可以使用InlineEditor?如果是这样,我做错了什么?

编辑:正如所写,有一个错字。工具栏对象应该是.create的第二个参数,而不是.querySelector的第二个参数。正如所写,编辑工作正常。除了工具栏问题。当错字被修复时,它根本不起作用。

2 个答案:

答案 0 :(得分:5)

我创造了一个js小提琴,看起来一切都很好:https://jsfiddle.net/9vthmvLc/

<div id="editor">
  Lorem ipsum
</div>

InlineEditor.create(
  document.getElementById( 'editor' ),
  {
    toolbar: [ 'headings', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', 'blockQuote' ],
  }
);

小提琴使用从CDN下载的CKEditor 5。我也在本地进行了拉链下载测试。

请注意,默认构建中不包含下划线,因此我将其从工具栏配置中删除。也许这就是为什么你感到困惑。 Herehere是一些解释,不包括默认构建中的下划线。如果您出于某种原因确实需要它,请考虑creating your own build

答案 1 :(得分:0)

您可以看到所有可用于自定义特定内部版本工具栏的选项,方法是点击F12在浏览器中打开开发人员工具(在具有要自定义工具栏的网页中导航),然后点击console并运行以下代码:

Array.from( editor.ui.componentFactory.names() );

您将得到与该结果相似的结果:

Array.from( editor.ui.componentFactory.names() );
(21) […]
0: "undo"
1: "redo"
2: "bold"
3: "italic"
4: "blockQuote"
5: "ckfinder"
6: "imageTextAlternative"
7: "imageUpload"
8: "heading"
9: "imageStyle:full"
10: "imageStyle:side"
11: "indent"
12: "outdent"
13: "link"
14: "numberedList"
15: "bulletedList"
16: "mediaEmbed"
17: "insertTable"
18: "tableColumn"
19: "tableRow"
20: "mergeTableCells"
​
length: 21

然后可以在toolbar数组中使用以下每个选项:

 toolbar: [ 'undo', 'redo', ...],

它适用于内联,经典或其他任何类型的工具栏。