IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> wangEditor富文本编辑器(第二章:字数限制) -> 正文阅读

[JavaScript知识库]wangEditor富文本编辑器(第二章:字数限制)

目录

前言

一、思路

二、步骤

1.修改编辑器组件

2.使用

总结


前言

接上一章引入编辑器后,第二个需求来了,字数限制,显然官方并没有给出字数限制的方法,所以只能自己来了(这个方法有点鸡肋,但是还是能满足,如果你有更好的想法,欢迎在评论区讨论哟~)。


一、思路

限制字数无非就是:监听输入框、限制字数;

所以第一步我们要为编辑器加监听事件,第二步剪切多余的字数

二、步骤

1.修改编辑器组件

打开editor.vue文件

新增参数和prop,并为model添加事件:

data() {
    return {
      editorContent: "", //存放含标签的内容
      editor: null
    };
  },
  props: {
    value: {
      type: String,
      required: true
    }
  },
  model: {
    prop: "value",
    event: "change"
  },

为编辑器添加监听事件:

  editor.config.onchange = html => {
        this.editorContent = html;
        console.log(this.editorContent, "editorContent");
        this.$emit("change", this.editorContent);
      };

添加在创建编辑器之前,位置如下:

实时监听value并复制给编辑器

 this.$watch("value", () => {
        if (this.value !== this.editor.txt.html()) {
          editor.txt.html(this.value);
        }
      });

位置如下:

?

然后添加一个实时输入的监听:

 change(e) {
      // v-model 指令是会给此节点添加一个input事件,我们在给富文本编辑器添加一个input事件,这么做在于,当输入内容后会获取到最新的内容,通过$emit 触发 父组件v-model所添加的input事件并将最新的内容传递过去,传递过去的值默认就会赋给v-model所绑定的属性。
      this.$emit("input", e.target.innerHTML());
    }

2.使用

打开使用组件的这个页面

直接上代码,都有注释:

<template>
  <div>
    <div class="item">
      <MyEditor
        id="editor"
        ref="editor"
        :wordNum="TiLength"
        v-model="form.content"
        @change="onEditorChange($event)"
      >
      </MyEditor>
      <p v-if="warnShow" class="warnText">
        编辑内容不能超过10个字!
      </p>
      <span class="wordNumber ">{{ TiLength }}/10</span>
    </div>
  </div>
</template>
<script>
import MyEditor from "@/components/MyEditor/editor.vue";
export default {
  components: {
    MyEditor
  },
  data() {
    return {
      form: {
        content: ""
      },
      TiLength: 0,
      warnShow: false,
      editorHtml: null
    };
  },
  methods: {
    onEditorChange(e) {
      console.log(e, "e");
      var reg = /<[^<>]+>/g; //去标签
      // var reg = /<(?!img).*?>/g //去除img以外的所有标签
      var value = e.replace(reg, "");
      value = value.replace(/&nbsp;/gi, ""); //将空格全部替换
      this.TiLength = value.length; //文字长度显示
      console.log(this.TiLength, "  this.TiLength");
      if (this.TiLength <= 10) {
        this.editorHtml = e;
        console.log(this.editorHtml, "this.editorHtml");
      }
      if (this.TiLength > 10) {
        //当长度大于10时,只截取10之前的内容并赋值
        this.$nextTick(() => {
          this.form.content = this.editorHtml;
        });
        this.warnShow = true;
        // this.$message.error("文字最多输入10字!");
        return false;
      }
    }
  }
};
</script>
<style lang="scss" scoped>
.item {
  width: 1100px;
  position: relative;
  .warnText {
    font-size: 14px;
    color: red;
    text-align: left;
  }
  .wordNumber {
    color: #909399;
    background: #fff;
    text-align: right;
    z-index: 100;
    right: 10px;
    bottom: 5px;
    font-size: 12px;
    position: absolute;
  }
}
</style>

最后上一张效果图吧~


总结

以上就是今天要讲的内容,其实并不难,就是监听和替换,但是这个方法也不是很完美啦,如果你有更好的意见欢迎子啊评论区讨论。

上一章:wangEditor富文本编辑器(第一章:基础使用)

下一章:wangEditor富文本编辑器(第三章:图片上传)

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:35:35  更:2022-06-16 21:36:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:46:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码