You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CKEditor5:如何在外部文件定义工具栏并通过名称引用?

实现CKEditor5多场景工具栏配置复用

完全可以把不同的工具栏配置抽离到独立文件中,通过名称直接引用,这样能大幅提升代码复用性和可维护性。下面是具体实现方案:

1. 创建独立的工具栏配置文件

新建一个比如ckeditor-toolbar-configs.js的文件,在里面定义并导出不同的工具栏配置:

// ckeditor-toolbar-configs.js
export const basicToolbar = [
    'heading', '|',
    {
        label: '基础格式',
        icon: false,
        items: ['bold', 'italic', 'link', 'bulletedList', 'numberedList']
    },
    '|',
    'undo', 'redo'
];

export const advancedToolbar = [
    'heading', '|',
    {
        label: 'Basic Settings',
        icon: false,
        items: ['bold', 'italic', 'link', 'strikethrough', 'bulletedList', 'numberedList', 'link', 'outdent', 'indent', 'fontSize', 'fontFamily', 'fontColor', 'fontBackgroundColor']
    },
    '|',
    {
        label: 'Media',
        icon: false,
        items: ['uploadImage', 'insertTable', 'mediaEmbed']
    },
    '|',
    'alignment', 'code', 'selectAll', 'removeFormat', 'findAndReplace', 'undo', 'redo', 'sourceEditing'
];

如果你的项目不支持ES模块,可以改用全局变量的方式:

// ckeditor-toolbar-configs.js
window.CKEditorToolbars = {
    basicToolbar: [/* 基础配置内容 */],
    advancedToolbar: [/* 高级配置内容 */]
};

2. 在页面中引用配置并初始化编辑器

方式一:ES模块环境

在页面脚本中导入配置,然后直接传入编辑器初始化参数:

<script type="module">
    import { basicToolbar, advancedToolbar } from './ckeditor-toolbar-configs.js';

    // 初始化基础版编辑器
    ClassicEditor
        .create(document.querySelector("#basic-editor"), {
            toolbar: basicToolbar
        })
        .catch(error => {
            console.log(error);
        });

    // 初始化高级版编辑器
    ClassicEditor
        .create(document.querySelector("#advanced-editor"), {
            toolbar: advancedToolbar
        })
        .catch(error => {
            console.log(error);
        });
</script>

方式二:全局变量环境

先引入配置文件,再初始化编辑器:

<script src="./ckeditor-toolbar-configs.js"></script>
<script>
    // 初始化基础版编辑器
    ClassicEditor
        .create(document.querySelector("#basic-editor"), {
            toolbar: window.CKEditorToolbars.basicToolbar
        })
        .catch(error => {
            console.log(error);
        });

    // 初始化高级版编辑器
    ClassicEditor
        .create(document.querySelector("#advanced-editor"), {
            toolbar: window.CKEditorToolbars.advancedToolbar
        })
        .catch(error => {
            console.log(error);
        });
</script>

额外提示

  • 可以根据需求扩展更多配置项,比如把编辑器的其他配置(比如语言、图片上传设置等)也一并抽离到配置文件中,形成完整的编辑器配置集合。
  • 如果使用构建工具(如Webpack、Vite),可以直接将配置文件作为模块导入,无需额外处理脚本类型。

内容的提问来源于stack exchange,提问作者James Privett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:25:09