富文本编辑器工具栏怎么自定义按钮? 宇文梓睿 提问于 2026-02-28 15:29:19 阅读 24 组件 我用的是 Quill.js,想在工具栏加个“插入表情”按钮,但文档看得有点懵。试过按官网例子改配置,但新加的按钮点不了,也没触发事件。 现在工具栏配置是这样的: const toolbarOptions = [ ['bold', 'italic'], ['link', 'image'], // 想在这里加个 'emoji' 按钮 ]; 是不是光写配置不够?还得注册模块或者绑定 handler?求指条明路! 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 ❤梦幻 Lv1 哈,这个问题我之前也踩过坑!你说得没错,光在配置数组里加个字符串是没用的,Quill 又不是你肚子里的蛔虫,哪知道你那个 'emoji' 要干啥。 核心就两步:配置里声明按钮,然后绑定 handler 告诉它点击后干啥。 给你一个能跑的例子: const toolbarOptions = [ ['bold', 'italic'], ['link', 'image'], ['emoji'] // 自定义按钮名称 ]; const quill = new Quill('#editor', { theme: 'snow', modules: { toolbar: { container: toolbarOptions, handlers: { emoji: function() { // 这里的 this 指向 toolbar 实例 const quill = this.quill; // 获取当前光标位置 const range = quill.getSelection(); const index = range ? range.index : 0; // 插入内容,这里简单插入个 emoji 文本 quill.insertText(index, '😊'); quill.setSelection(index + 1); } } } } }); 还有个事儿,按钮默认是没样式的,你得自己写个 CSS 或者图标。比如给你的 emoji 按钮加个样式: .ql-toolbar .ql-emoji::after { content: '😀'; font-size: 16px; } 如果你想动态添加 handler,也可以用 getModule 方法: const toolbar = quill.getModule('toolbar'); toolbar.addHandler('emoji', function() { // 你的逻辑 }); 这样就能跑了。希望能帮到你,Quill 的文档确实有点抽象,我当初也看了半天。 回复 点赞 2026-02-28 21:07 加载更多 相关推荐 1 回答 13 浏览 富文本编辑器工具栏怎么自定义样式才不会错乱? 我用 Quill.js 做了个富文本编辑器,现在想改工具栏按钮的样式,比如把图标变大点、间距调宽松些。但一加自定义 CSS,有些按钮就换行了,或者图标对不齐,特别奇怪。 我试过直接覆盖 .ql-too... 闲人照涵 交互 2026-03-12 11:45:21 2 回答 28 浏览 CKEditor自定义按钮获取选区文本返回空值怎么办? 我在CKEditor5里加了自定义按钮,点击时想获取当前选中的文本。用了editor.model.document.selection却总是空值,是不是获取方式有问题?试过监听选区变化也没触发... ... 开发者琬晴 交互 2026-02-11 02:08:24 1 回答 15 浏览 富文本编辑器里怎么动态给表格加行啊? 我在用 Vue 写一个富文本编辑器,里面插入了表格,但用户点击“添加行”按钮时,表格没反应。我试过直接 push 数据,但视图不更新,是不是哪里写错了? 这是我的模板代码: <table>... 皇甫玲玲 组件 2026-03-08 17:28:18 1 回答 15 浏览 富文本编辑器中表格无法正常合并单元格怎么办? 我最近在用 Quill.js 做一个富文本编辑器,加了表格插件之后发现没法合并单元格。点击合并按钮没反应,控制台也没报错。我试过用 quill.getModule('table') 获取模块,但返回的... UI晶晶 组件 2026-03-08 15:11:19 2 回答 63 浏览 富文本工具栏按钮状态无法根据选中内容动态更新怎么办? 我在给编辑器实现粗体按钮时,监听selectionchange事件后按钮状态一直没变化: document.addEventListener('selectionchange', function()... 子皓(打工版) 交互 2026-02-07 13:41:33 2 回答 59 浏览 Froala编辑器自定义按钮点击后无法触发事件怎么办? 我用Froala给项目加了个自定义按钮,配置完之后按钮能显示出来也能点击,但绑定了click事件就是没反应。控制台也没报错,这是怎么回事啊? 代码是这样写的:<br> <pre cl... 司徒文雅 组件 2026-01-26 03:23:26 1 回答 14 浏览 富文本编辑器里怎么实现格式刷功能? 我正在用 contenteditable 做一个简单的富文本编辑器,现在想加个格式刷功能,就是点一下复制当前选中文本的样式,再点另一段文字就应用过去。但不知道怎么准确获取和还原样式,试过 window... 司马卫红 交互 2026-03-03 07:04:20 1 回答 25 浏览 PageHeader 页头返回按钮怎么自定义跳转路径? 我用的是 Ant Design 的 PageHeader 组件,想改返回按钮的跳转链接,但文档里没看懂怎么覆盖默认的 go(-1) 行为。试了加 onClick 也不生效,点回去还是浏览器后退。 现在... Air-淑丽 组件 2026-03-02 11:57:18 2 回答 33 浏览 Vue富文本编辑器撤销功能导致光标位置错乱怎么办? 我在用contenteditable做富文本编辑器时,想通过保存历史快照实现撤销功能。但每次undo后光标会跳到开头,而且频繁操作会内存溢出。 现在用Vue维护一个history数组,在input事件... ___子怡 组件 2026-02-15 17:35:29 1 回答 88 浏览 Material-UI按钮自定义样式被默认样式覆盖怎么办? 在用Material-UI的Button组件时,我想给按钮加个圆角和渐变背景,但发现自定义的CSS类和内联样式都没生效。之前试过用sx prop和className,但样式总是被覆盖... 比如这个代... UX增芳 框架 2026-02-08 21:26:24
核心就两步:配置里声明按钮,然后绑定 handler 告诉它点击后干啥。
给你一个能跑的例子:
还有个事儿,按钮默认是没样式的,你得自己写个 CSS 或者图标。比如给你的 emoji 按钮加个样式:
如果你想动态添加 handler,也可以用
getModule方法:这样就能跑了。希望能帮到你,Quill 的文档确实有点抽象,我当初也看了半天。