vue-quill-editor自己定义模块

7 篇文章 0 订阅

这个定义模块是我参考了很多文章摸索的 目前有选中bug 添加没问题 在富文本还不能选中它 如果有朋友看到这个文章 请帮忙给指条路
效果就是点这里插入一个百分号 不过下面的代码只是自定义模块声明部分的 请想象一下百分号在空这个汉字的位置上的情况 我就不改了代码再截图了…
在这里插入图片描述

1、创建模块 不需要插入自定义模块的 只是插入一个文本字符的可用跳过1 2 步
这是一个添加矢量字体的 其实都大同小异 就是 return node;这里返回一个Dom元素

 // 引入源码中的BlockEmbed
 const BlockEmbed  = Quill.import('blots/embed');
 // 定义新的blot类型
 export default class baifenhao extends BlockEmbed  {
    static create() {
      let node = super.create();
     let i = document.createElement("i");
     i.setAttribute('class', 'jjgj_iconfont icon_baifenhao');
     i.setAttribute('style', 'font-size: 12px;');
     node.appendChild(i)
      return node;
    }
     // 返回节点自身的value值 用于撤销操作
     static value(node) {
      return node.innerHTML
    }
 }
 baifenhao.blotName = 'baifenhao';
 baifenhao.tagName = 'baifenhao';

2.main.js里面注册一下

import Quill from 'quill'
//上面哪个模块引用和注册
import baifenhao from "文件路径/baifenhao "
Quill.register(baifenhao );

3、在页面上使用
3.1配置文件里面配置

 editorOption: {
        placeholder: "",
        // or 'bubble'
        theme: "snow",
        modules: {
          toolbar: {
            container: [
              ["insertbaifenhao "],//在你喜欢的任何一个数组里把你注册的组件加上 这里名字随意起 主要是后期加标签使用的
            ],
            handlers: {
              shadeBox: null,
              insertbaifenhao : () => {//这里的方法名一定要和上面数组的方法名一一对应哈
                //方法体 点击富文本你自己定义的标签以后 会调用的你自己定义的vue的x 方法 我这里是别的程序粘过来的 如果括号数量不对请自行删减
                this.x();
              },
            },
          },
        },
      },

3.2 让富文本显示你自己的标签

// 自定义按钮内容初始化 这里的insertbaifenhao 就是在配置里你输入的名字 通过它给标签加图标 i标签怎么引入矢量字体 请自行百度 这里也可用用汉字哦
   let sourceEditorButton = document.querySelector(".ql-insertbaifenhao ");
   sourceEditorButton.innerHTML =
     '<i class="jjgj_iconfont icon_xieti" style="display: block;font-size: 18px;color: #444;margin-top: 2px;"></i>';

3.2点击标签在页面上插入注册好的组件

  //插入自定义组件
   x() {
     let index = this.editor.selection.savedRange.index;

     // // 插入文本至光标位置 这里插入的就是你自己定义的模块了
     this.editor.insertEmbed(index, "baifenhao", ``, true);
     index = index + 1;
     // // 移动光标至文本后面
     this.editor.setSelection(index);
   },
      //插入一个文本片段
   x() {
let index = this.editor.selection.savedRange.index;
     // 插入文本至光标位置,
     this.editor.insertText(index, `______`);
     // 重新计算index
     index += 6;
     // 移动光标至文本后面
     this.editor.setSelection(index);
   },
vue-quill-editor是一个基于Vue.js的富文本编辑器组件。它可以用于在页面中创建富文本内容,并提供了一些事件和选项来自定义编辑器的行为。\[1\]\[2\] 关于图片上传方案,可以使用以下方法之一: 1. 使用html的`<input type="file">`标签来实现图片上传。在Vue组件中,可以通过`@change`事件监听文件选择的变化,并在事件处理函数中处理上传逻辑。\[1\] 2. 使用vue-quill-editor提供的`quill-image-extend-module`来实现图片地址上传。这个模块可以将图片上传到服务器,并返回图片的地址,然后将地址插入到编辑器中。具体的实现可以参考vue-quill-editor的文档和示例代码。\[3\] 无论使用哪种方法,都需要在Vue组件中定义相应的事件处理函数,例如`onEditorBlur`、`onEditorFocus`、`onEditorReady`和`onEditorChange`等,来处理编辑器的各种事件。\[2\] 总之,vue-quill-editor提供了丰富的功能和选项,可以方便地实现富文本编辑器,并支持图片上传功能。具体的实现方式可以根据项目需求和具体情况进行选择和调整。 #### 引用[.reference_title] - *1* *2* *3* [vue-quill-editor富文本编辑器使用方法,最全,含部分源码解读,含图片上传,如果页面有多个富文本,图片...](https://blog.csdn.net/cplvfx/article/details/125557966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值