javascript - 在 QuillJS 中添加自定义类到 blockquote

标签 javascript vue.js quill vue-quill-editor

我试图弄清楚当用户单击 block 引用工具栏按钮时如何添加自定义类。目前,当单击 blockquote 时,将按如下方式创建元素:

<blockquote class="ql-align-justify">this is my quoted text</blockquote>

我想将 .blockquote 添加到类中,如下所示:

<blockquote class="ql-align-justify blockquote">this is my quoted text</blockquote>

我目前正在考虑添加一个处理程序,但似乎没有太多关于其工作原理的文档:

 this.editor = new Quill(this.$refs.editor, this.editorOptions)
 // Handlers can also be added post initialization
 var toolbar = this.editor.getModule('toolbar');
 toolbar.addHandler('blockquote', function(value) {
    //todo: working on adding the blockquote class to blockquotes.
    console.log('blockquote called');
    console.log('value:');
    console.log(value);

    if (value) {
       this.quill.format('blockquote');
    }

 });

最佳答案

我认为处理程序无法做到这一点(据我所知)

但是您可以扩展BlockQuote格式,通过这样做,您将完全控制节点,您可以添加类,甚至单击处理程序。

负责 block 引用的格式是:

const BlockQuote = Quill.import('formats/blockquote');

所以你可以简单地做:

  const BlockQuote = Quill.import('formats/blockquote');

  class CustomBlockQuote extends BlockQuote {
    static create(value) {
      const node = super.create(value);
      node.classList.add('test');
      return node;
    }
  }

您可以更新标签名称和印迹名称,例如:

  CustomBlockQuote.blotName = 'custom-blockquote';
  CustomBlockQuote.tagName = 'blockquote';

或者甚至更简单,仅更改类:

  class CustomBlockQuote extends BlockQuote {}
  CustomBlockQuote.blotName = 'custom-blockquote';
  CustomBlockQuote.tagName = 'blockquote';
  CustomBlockQuote.className = 'custom-class-name';
  Quill.register(CustomBlockQuote, true);

我刚刚创建了一个 jsfiddle 作为示例,希望它对您有用: https://jsfiddle.net/hassansalem/095mh3fn/4/

关于javascript - 在 QuillJS 中添加自定义类到 blockquote,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65340998/

相关文章:

javascript - 您如何将光标聚焦在驻留在 Bootstrap 模态中的 Quill 编辑器中?

javascript - jquery中解除绑定(bind)后如何绑定(bind)点击事件

javascript - Websocket 无法在 Chrome/Firefox 上发送/接收消息,在 Microsoft Edge 上工作正常

javascript - Vuejs - 使用与 vue-router (主干路由器)不同的路由器显示页面/Vue 文件

javascript - Quill文本编辑器使用JQuery创建后如何使用实例

css - 获取当前 Quill Editor 的工具栏背景颜色

当我打开与 CodeSleeve Assets 管道的串联时,Javascript 不工作(Laravel 4)

javascript - 如何使用nodejs处理请求超时

vue.js - 为什么 Vue.js 中的必需输入似乎会自动触发子组件中的验证?

javascript - 从 firebase 数据库中删除指定的数组