vue2.x 富文本编辑器Tinymce的使用

news2025/6/9 6:22:52

VUE项目版本是2.x,切记: vue2中不能使用@tinymce/tinymce-vue为4以上版本;
如果有安装高版本,卸载:npm uninstall @tinymce/tinymce-vue
第一步:安装

npm install tinymce@5.1.0 -S
npm install @tinymce/tinymce-vue@3.0.1 -S

第二步:配置文件

找到 node_modules 下的 tinymce 将其目录下的 skins, themes 复制到 static/tinymce文件路径下,这里的langs是我自己加的汉化语言包,
语言包下载地址:Language Packages | Trusted Rich Text Editor | TinyMCE
在这里插入图片描述
第三步: 组件封装TinymceText.vue
文件路径:src/components/TinymceText.vue

<template>
  <div class="tinymce-editor">
    <editor v-model="myValue" :init="init" :disabled="disabled" @onClick="onClick">
    </editor>
  </div>
</template>
 
<script>
import tinymce from 'tinymce/tinymce'
import Editor from '@tinymce/tinymce-vue'
import 'tinymce/themes/silver/theme'
import 'tinymce/plugins/image'
import 'tinymce/plugins/media'
import 'tinymce/plugins/table'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/contextmenu'
import 'tinymce/plugins/wordcount'
import 'tinymce/plugins/colorpicker'
import 'tinymce/plugins/textcolor'
export default {
  components: {
    Editor
  },
  props: {
    //传入一个value,使组件支持v-model绑定
    value: {
      type: String,
      default: ''
    },
    disabled: {
      type: Boolean,
      default: false
    },
    plugins: {
      type: [String, Array],
      default:
        // ' anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists   noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount'
        'lists image media table  wordcount '
    },
    toolbar: {
      type: [String, Array],
      default:
        // 'undo redo | searchreplace | bold  italic | underline | strikethrough | alignleft  aligncenter alignright | outdent indent  blockquote  removeformat subscript superscript code codesample hr bullist numlist link image charmap preview anchor pagebreak insertdatetime  table  forecolor backcolor'
        'undo redo |  formatselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table | removeformat hr'
    }
  },
  data () {
    return {
      //初始化配置
      init: {
        language_url: '../static/tinymce/langs/zh-Hans.js', // 根据自己文件的位置,填写正确的路径。路径不对会报错
        language: 'zh_CN',
        skin_url: '../static/tinymce/skins/ui/oxide', // 根据自己文件的位置,填写正确的路径。路径不对会报错
        height: 300,
        plugins: this.plugins,
        toolbar: this.toolbar,
        branding: false,
        menubar: false,
        //此处为图片上传处理函数,这个直接用了base64的图片形式上传图片,
        //如需ajax上传可参考https://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler
        images_upload_handler: (blobInfo, success, failure) => {
          const img = 'data:image/jpeg;base64,' + blobInfo.base64()
          success(img)
          console.log('failure', failure)
        },
        resize: false
      },
      myValue: this.value
    }
  },
  mounted () {
    tinymce.init({})
  },
  methods: {
    //添加相关的事件,可用的事件参照文档=> https://github.com/tinymce/tinymce-vue => All available events
    //需要什么事件可以自己增加
    onClick (e) {
      this.$emit('onClick', e, tinymce)
    },
    //可以添加一些自己的自定义事件,如清空内容
    clear () {
      this.myValue = ''
    }
  },
  watch: {
    value (newValue) {
      this.myValue = newValue
    },
    myValue (newValue) {
      this.$emit('input', newValue)
    }
  }
}
</script>
<style scoped>
</style>

注意: 这里的路径一定要写正确,不然会页面不出富文本效果且控制台会报错

 init: {
        language_url: '../static/tinymce/langs/zh-Hans.js', // 根据自己文件的位置,填写正确的路径。路径不对会报错
        language: 'zh_CN',
        skin_url: '../static/tinymce/skins/ui/oxide', // 根据自己文件的位置,填写正确的路径。路径不对会报错

第四步:组件使用TextEditor.vue
文件路径: src/views/TextEditor.vue

<template>
  <div>
    <h1>富文本编辑器</h1>
    <Tinymce class="setTinymce" :height="200" v-model="value"></Tinymce>
  </div>
</template>
 
<script>
import Tinymce from "@/components/TinymceText.vue";

export default {
  data() {
    return {
      value:''
    };
  },
  components: {
    Tinymce,
  },
};
</script>

最后,看效果:
文字效果可以根据需求自己在封装的富文本组件TinymceText.vue中添加;
在这里插入图片描述
最开始配置时, 出现各种报错,总结下来两种情况:
1、tinymce版本安装太高,这种配置是VUE2.x的配置方法;
2、这里的文件路径不对: language_url: ‘…/static/tinymce/langs/zh-Hans.js’,
skin_url: ‘…/static/tinymce/skins/ui/oxide’,

遇到问题,耐心一点点去解决!!

参考文章:
https://blog.csdn.net/xiaomanonyo/article/details/123177405?ops_request_misc=&request_id=&biz_id=102&utm_term=vue2%E4%B8%AD%E4%BD%BF%E7%94%A8tinymce&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduweb~default-6-123177405.article_score_rank_blog&spm=1018.2226.3001.4450

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

费曼学习法——孩子弱点方向的提升和沟通技巧

这一篇虽然是兔年第一篇&#xff0c;但是&#xff0c;先不拜年了&#xff0c;主要是成文时间较短&#xff0c;后面会有一个详细的长篇文字&#xff0c;讨论一些观点和看法。每一个孩子都有弱点的方向&#xff0c;我们是否都要给孩子提升&#xff0c;首先表达一个观点&#xff1…

图论算法基础

图论算法基础有向图有向图的实现方式无向图无向图的实现方式连通图连通分量的定义强连通图和强连通分量的定义弱连通图和单向连通图的定义判断图是否是强连通图&#xff0c;弱连通图还是单项连通图一个很典型的错误代码JAVA实现C实现生成树最小生成树拓扑排序邻接表的实现方式数…

【ShaderGraph】道路引导,小溪流水等UV动画效果

目录 一&#xff1a;创建ShaderGraph文件 二&#xff1a;设置UV动画速度变量 ​三&#xff1a;设置UV动画方向和Tiling变量 ​四&#xff1a;设置贴图属性 五&#xff1a;设置主色MainColor属性 六&#xff1a;最终效果 一&#xff1a;创建ShaderGraph文件 1.在assets下…

css之BFC是什么

在讲BFC之前先来了解一下FC FC-Formatting Context FC全称Formatting Context(格式化上下文)&#xff0c;元素在标准流里面都属于一个FC的 官网解释&#xff1a; Boxes in the normal flow belong to a formatting context,which may be block or inline, but not both sim…

指针(基础)

目录 一、内存和地址 二、指针是什么&#xff1f; 三、指针变量的内容 四、指针类型 五、间接访问操作符 &#xff08;一&#xff09;易混淆 六、野指针 &#xff08;一&#xff09;野指针成因 1. 指针未初始化 2. 指针越界访问 3. 指针指向的空间释放 &…

php xss攻击

文章目录一、什么是xss攻击二、攻击类型三、php相关处理函数1、htmlspecialchars 函数2、htmlentities 函数3、strip_tags 函数一、什么是xss攻击 xss攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执…

make menuconfig分析

在uboot源码顶层目录下&#xff0c;进入scripts/kconfig目录&#xff0c;打开Makefile文件 mconf作为可执行参数,uboot源码顶层目录下的配置文件传递给conf

39_tp6的rce漏洞

tp6的rce漏洞 一、环境搭建 使用docker本地搭建tp6环境 1. 下载镜像 docker pull vulfocus/thinkphp:6.0.122. 端口映射 启动镜像,并将80端口映射到8081端口,防止80端口冲突,运行容器 docker run -it -d -p 8081:80 1fc5d159922e3. 打开网站 默认的网页目录是在public目…

怎么在线识别图片文字?说一个思路

图片中的文字怎么在线识别&#xff1f;很多小伙伴在接收到图片类型的文件时&#xff0c;不知道怎么处理其中记录的信息。打字整理嫌麻烦怕出错的话&#xff0c;可以借助识别软件来处理&#xff0c;下面给大家介绍三种比较好用的工具&#xff0c;希望能解决你的问题。方法一、在…

SAP ADM100-Unit3 系统配置介绍:如何设置配置文件参数

本节将介绍如何改变配置文件参数的值。 1、管理并维护配置文件 如果想去调整配置文件参数,可以使用操作系统特定的编辑器去调整参数。但是,这个过程是有确定风险的,因此用户必须确保这个调整被正确的执行和记录。设置的参数不正确可能导致实例无法启动。因此,SAP系统提供…

JVM学习疑问之——逃逸分析

前言 根据之前安排的jvm学习计划在进行jvm学习&#xff0c;找到了尚硅谷宋红康老师的jvm视频&#xff0c;跟着视频学习、做笔记&#xff0c;学习到了很多&#xff0c;为尚硅谷及宋红康老师点赞。说到这里&#xff0c;虽然我有一键三连&#xff0c;但这么好的视频&#xff0c;我…

(六)redis持久化操作(RDBAOF)

目录 一、RDB&#xff08;Redis DataBase&#xff09; 1、简介 2、持久化流程 3、dump.rdb文件 4、配置文件 5、rdb的备份 6、rdb的恢复 7、优势 8、劣势 二、AOF&#xff08;Append Only File&#xff09; 1、简介 2、持久化流程 3、AOF和RDB同时开启 4、AOF启动…

HTML中引入CSS样式的第三种方式:链入外部样式表文件

<!-- 第三种方式&#xff1a;链入外部样式表文件&#xff0c;这种方式最常用。 就是将样式写到一个独立的xxx.css文件当中&#xff0c;在需要的网页上直接引入这个xxx.css文件就可以了。 语法格式&#xff1a; <head> …

【自学Docker 】Docker port命令

Docker port命令 概述 docker port命令教程 docker port 命令可以用于列出指定的 Docker容器 的端口映射&#xff0c;或者将容器里的端口映射到宿主机。该命令后面的 CONTAINER 可以是容器Id&#xff0c;或者是容器名。 docker port语法 haicoder(www.haicoder.net)# docke…

jsp 校园相册管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 校园相册管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用web模式开发&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境 为TOMCAT7.0,Myeclipse8.5开发&#xf…

计算机组成原理 | 第五章:输入输出系统 | 程序中断方式

文章目录&#x1f4da;概述&#x1f407;I/O系统的概述&#x1f407;输入输出系统的组成&#x1f407;I/O设备与主机的联系&#x1f407;I/O设备与主机信息传送的控制方式&#x1f4da;I/O接口&#x1f407;为什么要设置接口❓&#x1f407;接口的功能和组成&#x1f407;接口和…

Pygame的SurfaceImageTime

Surface用来生成一个矩形&#xff0c;Image用来导入外部图片&#xff0c;Time用来暂停时间。 Surface 生成矩形 facepy.Surface((200,200))填充颜色 face.fill(blue) 放入界面 screen.blit(face,(50,50)) Image 导入图片 imgpy.image.load(d:\\图片\\1.jpg) 缩放…

make prerequisite: 根据文件状态自动确定是否重新执行

Basic 先看一个简单的例子&#xff08;引自Makefile Tutorial By Example&#xff09;&#xff1a;当我们对同一个makefile执行两次make命令时&#xff0c;由于第一次运行已经生成了目标文件blah&#xff0c;第二次make会直接输出blah is up to date&#xff0c;而不会重新com…

(四)Redis配置文件redis.conf详解

目录 一、Units单位 二、INCLUDES&#xff08;包含配置&#xff09; 三、NETWORK&#xff08;网络配置&#xff09; 四、GENERAL&#xff08;总则&#xff09; 五、SNAPSHOTTING&#xff08;拍摄快照&#xff09; 六、REPLICATION&#xff08;复制&#xff09; 七、SECU…

【苹果相册日历推位置推送iMessage】需要将真机的udid复制出来在此添加

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …