• 富文本框vue-quill-editor的使用


    vue-quill官网:https://www.npmjs.com/package/vue-quill-editor

    quill官网:https://quilljs.com/docs/quickstart/

    基本用法这里就不介绍了,这里介绍下特殊用法:

    怎么添加 自定义blots 和 自定义toolbar控件

    <template>
    <QuillEditor ref="editor" v-model="content" :options="editorOption">
      <div id="toolbar" slot="toolbar">
        <select class="ql-size">
              <option value="small"></option>
              <option selected>常规</option>
              <option value="large"></option>
              <option value="huge">特大</option>
            </select>
        <button type="button" class="ql-bold"></button>
        <button type="button" class="ql-italic"></button>
        <button type="button" class="ql-underline"></button>
        <select class="ql-color"></select>
        <button type="button" class="ql-image"></button>
        <button type="button" class="ql-list" value="ordered"></button>
        <button type="button" class="ql-list" value="bullet"></button>
        <select class="ql-align"></select>
        <!-- 自定义控件 -->
        <button  @click="addMyBlot">自定义按钮</button>
      </div>
    </QuillEditor>
    </template>
    
    <script>
    import { Quill } from 'vue-quill-editor';
    // 拿到内嵌
    const Embed = Quill.import('blots/embed');
    
    class myBlot extends Embed {
      static blotName = 'myblot';
      static tagName = 'myblot';
      static create(value) {
        const node = super.create(value);
        node.innerHTML = value;
        node.setAttribute('id', value);
        return node;
      }
    }
    // 注册
    Quill.register(myBlot);
    
    export default {
      data() {
        return {
          content: '',
          editorOption: {
            placeholder: '请输入文本...',
            modules: {
              toolbar: '#toolbar',
            },
          },
        }
      },
      method: {
        // vue-quill的小bug
        // 虽然是双向绑定,但不能直接改content,ql-editor的innerHTML,不然blot的value会变为true
        setContent(innerHTML) {
          setTimeout(() => {
            const quill = this.$refs['editor'].quill;
            quill.container.querySelector('.ql-editor').innerHTML = innerHTML
          })
        },
        addMyBlot() {
          const quill = this.$refs['editor'].quill;
          quill.insertEmbed(index, 'myblot', 'balabala。。。');
        }
      }
    }
    
    </script>
  • 相关阅读:
    关于xcode中证书安装问题
    iOSOpenDev 安装流程
    openCV
    POJ2081(Recaman's Sequence)
    POJ1163(The Triangle)
    POJ3620(Avoid The Lakes)
    POJ1160(Post Office)
    POJ3177(Redundant Paths) or POJ3352(Road Construction)
    POJ1953(World Cup Noise)
    POJ1904(King's Quest)
  • 原文地址:https://www.cnblogs.com/amiezhang/p/9796986.html
Copyright © 2020-2023  润新知