我正在尝试使用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的第二个参数。正如所写,编辑工作正常。除了工具栏问题。当错字被修复时,它根本不起作用。
答案 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。我也在本地进行了拉链下载测试。
请注意,默认构建中不包含下划线,因此我将其从工具栏配置中删除。也许这就是为什么你感到困惑。 Here和here是一些解释,不包括默认构建中的下划线。如果您出于某种原因确实需要它,请考虑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', ...],
它适用于内联,经典或其他任何类型的工具栏。