当前位置: 首页 > news >正文

『VUE』vue-quill-editor 添加超链接的同时为文字添加颜色(详细图文注释)

目录

    • 需求分析
    • 实现效果
    • api说明
    • 实现代码
    • 总结


欢迎关注 『VUE』 专栏,持续更新中
欢迎关注 『VUE』 专栏,持续更新中

需求分析

因为用户添加超链接的时候,浏览器自动给超链接增加了蓝色的样式,这导致用户忘记了修改超链接文本的颜色

提示:如果是组件封装,不知道为啥一开始不生效更改,可以刷新看 是否生效


实现效果

在这里插入图片描述

选中文字添加超链接后文本变色超链接添加.

选中已经有超链接的文字后点击超链接按钮后文本去掉颜色去掉超链接.


api说明

  • this.quill.getSelection()

调用该方法时,Quill 编辑器会返回当前的选区信息。如果没有选中任何文本(即只有光标在某个位置),它会返回 null。

  • 返回值:
    如果选中了文本,返回的对象包含以下两个属性:
    index:表示选区的起始位置,即文本在编辑器中的索引。
    length:表示选区的长度,即选中部分文本的长度。
    如果没有选中文本(只是光标位置),返回值是 null。

  • format(“link”, href)
    更侧重于 链接处理,它让选中的文本变成一个超链接。

this.quill.format(“link”, false);//清除

  • formatText(range.index, range.length, ‘color’, …)
    主要是对文本的 样式格式化,可以用来修改字体颜色、大小、粗细等属性。

this.quill.formatText(range.index, range.length, ‘color’, false);//清除

实现代码

editorOption的handlers中设置自定义方法,否则用默认的组件方法

      <quillEditorclass="editor":class="[size]"v-model="content"ref="myQuillEditor":options="editorOption"@blur="onEditorBlur($event)"@focus="onEditorFocus($event)"@change="onEditorChange($event)"></quillEditor>
editorOption: {theme: "snow", // or 'bubble'placeholder: this.placeholder,modules: {toolbar: {container: [["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线["blockquote", "code-block"], // 引用  代码块[{ header: 1 }, { header: 2 }], // 12 级标题[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表[{ script: "sub" }, { script: "super" }], // 上标/下标[{ indent: "-1" }, { indent: "+1" }], // 缩进// [{'direction': 'rtl'}],                         // 文本方向[{ size: ["small", false, "large", "huge"] }], // 字体大小[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色[{ font: [] }], // 字体种类[{ align: [] }], // 对齐方式["clean"], // 清除文本格式["link", "image", "video"] // 链接、图片、视频],// container: "#toolbar",handlers: {link: function(value) {const range = this.quill.getSelection();//获取选中的文本if (value) {var href = prompt('请输入url地址');href=href.indexOf('http')>-1 ? href :"error"this.quill.format("link", href);//添加url连接this.quill.formatText(range.index, range.length, 'color', 'rgb(102, 163, 224)');} else {this.quill.format("link", false);//消除url链接this.quill.formatText(range.index, range.length, 'color', false);//消除文本颜色}},}}}},

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-3-1

欢迎关注 『VUE』 专栏,持续更新中
欢迎关注 『VUE』 专栏,持续更新中
『未完待续』


http://www.xdnf.cn/news/596287.html

相关文章:

  • 有动画效果,但动画窗格里为空
  • 红黑树插入的旋转变色
  • Python |GIF 解析与构建(1):初步解析
  • SOC-ESP32S3部分:7-如何学习ESP32S3-IDF开发
  • Katoolin3 项目介绍:在 Ubuntu 上轻松安装 Kali Linux 工具
  • 【题解-洛谷】P9644 [SNCPC2019] Turn It Off
  • 1.2V超低功耗晶振:物联网设备续航提升的秘密武器
  • ThreadLocal底层原理解析
  • 比较结构的连通性
  • MySQL多线程备份工具mysqlpump详解!
  • 骰子游戏(2023睿抗省赛)
  • C++函数封装和绑定
  • 硬件,软件和进程
  • 过氧化物酶的邻近标记技术(APEX):最灵敏的蛋白互作方法
  • Python生成物理引擎的简单知识图谱
  • SOC-ESP32S3部分:6-任务看门狗
  • 101个α因子#18
  • 【Python/Tkinter】实现程序菜单
  • JVM部分内容
  • mybatisplus公共字段自动填充
  • 1.3 任务Task的说明(Xqt)
  • [Linux文件系统] “我的文件在哪?”FHS标准深度解析与核心目录实用指南
  • MVC和MVVM架构的区别
  • sqli-labs——二次注入
  • 常见的慢SQL优化方式
  • strlen和sizeof,const char *、char * const 和char []区别
  • 第二十九天打卡
  • 网络割接的详细流程和关键点
  • 关于常见日志的几种级别和格式
  • 加工生产调度(Johnson算法)