CKEditor 5 InlineEditor语言 - - 如何配置工具栏



我正在试验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>

它仍然显示默认工具栏,而不是指定的工具栏。 文档中的示例显示了经典编辑器。 是否可以使用内联编辑器? 如果是这样,我做错了什么?

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

我创建了一个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。我还通过 zip 下载在本地对其进行了测试。

请记住,默认构建中不包含下划线,因此我将其从工具栏配置中删除。也许这就是你感到困惑的原因。这里和这里有一些关于在默认版本中不包含下划线的解释。如果出于某种原因确实需要它,请考虑创建自己的构建。

您可以查看可用于

自定义特定构建的工具栏的所有选项,方法是按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', ...],

它适用于任何类型的工具栏,无论是内联的、经典的还是其他的。

最新更新