vue2中使用 Tinymce 5.1.0使用过程举例

news2024/9/28 11:15:58

一、背景

vue-cli 版本 :@vue/cli 4.5.15

查看脚手架版本的方法:Win + R 打开运行输入: cmd  ,打开控制台输入 vue -V

 vue 版本:"vue": "^2.6.11",

二、安装 Tinymce

 1、  --no-fund 是因为提示你捐赠支持,加上这个就忽略捐赠。(Tinymce不同版本会有不同请注意版本。

npm install npm install tinymce@5.1.0 -S --no-fund

2、安装成功以后在 nodelmodules 会有 tinumce 文件夹,结构目录如图所示

3、将 plugins、skins、thems文件都复制到 public\static 文件夹,新建langs 文件夹,zh_CN.js为汉化语言包。其他tinymce 的版本的语言包在我都资源中都有,这是tinymce 5 的语言包下载地址 https://download.csdn.net/download/Drizzlejj/87451093?spm=1001.2014.3001.5503 当然也可以去自行去官网下载。

  三、 创建示例

1、在views 文件夹下新建 Tinymce.vue 文件

<template>
<div>
    <div id="tinymce" ></div>
    <input type="button" @click="getContent()" value="获得内容" >
</div>
  
</template>
<script>
import tinymce from "tinymce/tinymce"; //tinymce默认hidden,不引入不显示
import "tinymce/themes/silver/theme"; //编辑器主题
import "tinymce/plugins/link"; //超链接
import 'tinymce/plugins/paste'  //粘贴过滤
import 'tinymce/plugins/preview'  //预览
import 'tinymce/plugins/media'
import 'tinymce/plugins/image'
import 'tinymce/plugins/advlist'
import 'tinymce/plugins/code'  // 源代码

export default {
  data() {
    return {
      
    };
  },
  mounted() {
    // 初始化编辑器
    this.initTiny();
  },
  methods: {
    // 初始化编辑器
    initTiny(){
        var tinyID='tinymce';
        tinymce.init({
            selector: '#'+tinyID,
            language_url: '../static/langs/zh_CN.js',  // 汉化路径
            language:'zh_CN',
            skin_url: '../static/skins/ui/oxide-dark', // 编辑器皮肤
            content_css: `../static/skins/content/default/content.css`,  // 编辑器样式
            plugins: 'link media image advlist code',  // 插件
            toolbar: 'undo redo | styleselect | bold italic aligncenter| link image media code', // 菜单栏
            auto_focus: true,
        });
    },
    // 点击获取内容
    getContent(){
        var cnt = tinymce.editors['tinymce'].getContent();
        console.log(cnt);
        alert(cnt);
    },
  }
};
</script>

2、在路由中引入组件,编写地址

3、运行结果如图所示,在输入框中输入内容,点击获取内容:

 3.1 获取输入内容纯文本

getContent(){
        var cnt = tinymce.editors['tinymce'].getContent({ format: 'text' });
        console.log(cnt);
        alert(cnt);
    },

3.2 销毁编辑器

destroyTiny(){
    tinymce.editors[tinyID].destroy();
    //tinyMCE.editors[tinyID].remove();
}

 四、tinymce 基本配置

1、selector是TinyMCE的重要配置选项,使用CSS选择器语法来确定页面上哪个元素被TinyMCE替换成编辑器。

tinymce.init({
    selector: '#textarea'
});

2、插件配置

plugins配置参数用于指定哪些插件被用在当前编辑器实例中。TinyMCE自带丰富的插件,也可以编写自己的插件,用此选项引入。

tinymce.init({
    selector: '#textarea',
    plugins : 'advlist autolink link image lists preview', //字符串方式
    //plugins : ['advlist','autolink','link'], //数组方式
});

3.工具栏配置

使用toolbar来配置工具栏上可用的按钮,多个控件使用空格分隔,使用“|”来创建分组。

 lineheight(行高5.5新增) newdocument(新文档) bold(加粗)italic(斜体)underline(下划线) strikethrough(删除线)alignleft(左对齐)aligncenter(居中对齐)alignright(右对齐)alignjustify(两端对齐)  styleselect(格式设置) formatselect(段落格式) fontselect(字体选择) fontsizeselect(字号选择)cut(剪切)copy(复制)paste(粘贴)bullist(项目列表UL)numlist(编号列表OL)outdent(减少缩进) indent(增加缩进)blockquote(引用)undo(撤销)redo(重做/重复)removeformat(清除格式)subscript(下角标)superscript(上角标)

 4、菜单栏配置

menu:影响菜单上放置的项目(其还提供创建自定义标题菜单的方法)。

menubar:影响菜单下拉列表中显示的项目。

4.2自定义菜单,如要菜单栏消失:menubar:false,

 5、设置编辑器的宽高,默认单位为像素(px),如提供了单位,TinyMCE会以css模式去理解它。单位支持px/%/em/vh/vw

tinymce.init({
    selector: '#tinydemo',
    width: 300,
    height: 300,
});

 6、图片上传

1、images_upload_url :用于指定一个接受上传文件的后端处理接口地址;images_upload_base_path:可以给相对路径指定它所相对的基本路径。(本例中由于后台在本地运行,后台返回的相对路径,我在路径上加了地址)

 2、后端返回的格式必须是:

//json格式
{ "location": "folder/sub-folder/new-location.png" }

3、示例:

 7、首行缩进

 下载首行缩进的插件,放入 plugins 中。http://tinymce.ax-z.cn/more-plugins/indent2em.zip

使用方法同一般插件

效果:

 

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

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

相关文章

C语言(表达式,语句和副作用和序列号)

目录 一.表达式 二.语句 三.副作用和序列点 一.表达式 由运算符和运算对象组合。最简单得表达式是一个单独的运算对象&#xff0c;以次为基础可以建立复杂的表达式 4 421 a*&#xff08;b c/d)/20 运算对象可以是常量&#xff0c;变量或二者得组合。一些表达式由子表达…

python--石头剪刀布游戏(列表)

本使用了下面几篇文章的知识&#xff1a; python(8)--列表初阶使用_码银的博客-CSDN博客 python(7)--if语句_码银的博客-CSDN博客 一、学习目标 利用列表实现石头剪刀布游戏 二、实验环境 Pycharm社区版、win11 三、代码 先贴代码&#xff0c;有需要的直接拿&#xff0c;想要进…

Hive提升篇-Hive修改事务

简介 Hive 默认是不允许数据更新操作的&#xff0c;毕竟它不擅长&#xff0c;即使在0.14版本后&#xff0c;做一些额外的配置便可开启Hive数据更新操作。而在海量数据场景下做update、delete之类的行级数据操作时&#xff0c;效率并不如意。 简单使用 修改HIVE_HOME/conf/hi…

JS逆向寻找生成bid变量的加密算法,一顿操作猛如虎,结果发现原来是混淆代码

分享一下最近我JS逆向的心得。 我最近使用Python爬取某个网站某个链接&#xff0c;cookie必须加入qgqp_b_id参数才能获取数据。 这个参数是一个32位字符串&#xff0c;通过浏览器的开发者工具分析网页源代码&#xff0c;了解到这个qgqp_b_id变量不是服务器返回给客户端的&…

Whids:一款针对Windows操作系统的开源EDR

关于Whids Whids是一款针对Windows操作系统的开源EDR&#xff0c;该工具所实现的检测引擎基于先前的 Gene项目构建&#xff0c;并专门设计可以根据用户定义的规则匹配Windows事件。 功能特性 1、为社区提供一款功能强大且开源的Windows EDR&#xff1b; 2、支持检测规则透明化…

有了java基础,迅速学完Python并做了一份笔记

面向过程Python简介Python和Java的解释方式对比Java&#xff1a;源代码 -> 编译成class -> Jvm解释运行Python&#xff1a;源代码 -> Python解释器解释运行我经常和身边的Java开发者开玩笑说&#xff1a;“Java真变态&#xff0c;别的语言都是要么直接编译要么直接解释…

无线蓝牙耳机哪个好用?好用的无线蓝牙耳机推荐

随着苹果取消3.5mm耳机孔&#xff0c;近几年蓝牙耳机便逐渐取代有线耳机以强势的姿态闯入人们的日常生活。听歌、游戏、运动等&#xff0c;使用蓝牙耳机的人越来越多。经常看到有人问&#xff0c;无线蓝牙耳机哪个好用&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款好…

消息称索尼计划为PS5推出两款蓝牙耳机,Find My蓝牙耳机用途广

根据国外科技媒体 Insider Gaming 报道&#xff0c;索尼计划进一步丰富 PlayStation 5 的配件生态&#xff0c;将会推出两款耳机&#xff0c;一款采用类似于 AirPods 的 TWS 设计&#xff0c;另一款则是无线头戴式耳机。 消息称 TWS 耳机的内部代号为“Project Nomad”&#…

Debug分支在什么场景下使用?怎样创建Debug分支?

在项目的正常开发过程中&#xff0c;之前发布过的版本可能很会出bug&#xff0c;这时就需要停下来现在的开发任务&#xff0c;先去修改bug&#xff0c;完成后再回来继续开发任务。git中stash提供了保存现场的功能&#xff0c;可以把当前工作区、暂存区中的内容不需要提交而保存…

Elasticsearch:Text vs. Keyword - 它们之间的差异以及它们的行为方式

很多刚开始学习 Elasticsearch 的人经常会混淆 text 和 keyword 字段数据类型。 它们之间的区别很简单&#xff0c;但非常关键。 在本文中&#xff0c;我将讨论两者之间的区别、如何使用它们、它们的行为方式以及使用哪一种。 区别 它们之间的关键区别在于&#xff0c;Elastic…

Win 10电脑摄像头提示错误代码0xa00f4244怎么办?

如果你的Windows 10电脑无法打开摄像头&#xff0c;提示“我们找不到你的摄像头”的错误消息&#xff0c;错误代码是0xA00F4244&#xff0c;原因可能是杀毒软件阻止了摄像头&#xff0c;或者是摄像头驱动程序有问题。 小编为你整理了摄像头错误代码0xA00F4244的解决方法&#…

浏览器(以chrome为例)设置对WebGL的支持

某些浏览器由于不支持WebGL渲染&#xff0c;在浏览三维场景服务的时候会报“Your WebGL implementation doesn’t seem to support hardware accelerated rendering”错误&#xff0c;解决方法如下&#xff1a; 1、首先确保电脑支持gpu硬件加速&#xff0c;并下载最新的 GPU 驱…

存储性能软件加速库(SPDK)

存储性能软件加速库SPDK存储加速存储性能软件加速库&#xff08;SPDK&#xff09;SPDK NVMe驱动1.用户态驱动1&#xff09;UIO2&#xff09;VFIOIOMMU&#xff08;I/O Memory Management Unit&#xff09;3&#xff09;用户态DMA4&#xff09;大页&#xff08;Hugepage&#xf…

Part 4 描述性统计分析(占比 10%)——下

文章目录【后续会持续更新CDA Level I&II备考相关内容&#xff0c;敬请期待】【考试大纲】【考试内容】【备考资料】【扩展知识】4、相关分析4.1、相关分析的描述——散点图4.2、相关分析的类型4.3、相关分析的度量4.3.1、协方差4.3.2、相关系数【后续会持续更新CDA Level …

Pyside6(3): 自动生成UI的Qt参数输入对话框

1.前言参数输入界面是桌面软件开发最繁琐的部分之一。特别是当系统中存在多种可编辑的数值模型时&#xff0c;由于各个模型的字段不同&#xff0c;每个字段的输入类型也不同&#xff0c;需要制作不同的UI&#xff0c;使用不同的UI控件&#xff0c;无疑会耗费大量时间&#xff0…

vite+vue3 proxy配置代理服务器解决本地运行跨域问题

vitevue3 proxy配置代理服务器解决本地运行跨域问题 1. 什么是跨域呢&#xff1f; 首先&#xff0c;明白什么是同源策略&#xff1f;同源就是指 协议、域名、端口 都要相同&#xff0c;其中任何一个不同都会出现跨域。例如&#xff1a; http://www.xxx.com:8000 // http 是协…

2023,为什么我的简历还是石沉大海?

对于应聘者来说 &#xff0c;我们经常见到这样的情况 &#xff0c;投递的简历要么是已送达&#xff08;未读&#xff09;&#xff0c;要么是已读不回 &#xff0c;也有的是沟通上几句就没有了下文 。对于这样的结果我们是既好奇又郁闷 &#xff0c;好奇的是为啥大多数的简历都石…

新库上线 | CnOpenDataA股上市公司交易所监管措施数据

A股上市公司交易所监管措施数据 一、数据简介 证券市场监管是指证券管理机关运用法律的、经济的以及必要的行政手段&#xff0c;对证券的募集、发行、交易等行为以及证券投资中介机构的行为进行监督与管理。 我国《证券交易所管理办法》第十二条规定&#xff0c;证券交易所应当…

数据结构刷题

数据结构刷题 文章目录数据结构刷题计算时间复杂度练习题答案不带头结点的单链表的插入和删除运算数据结构头插法和尾插法建立单链表二叉树各种方法实现数据结构图的练习题习题答案习题计算时间复杂度练习题 1、设 n 为正整数。试确定下列各程序段中前置以记号的语句的频度。 …

课程规范性要求

课程制作规范 图片规范 允许范围&#xff1a;CC协议 / 作者授权 / 网站代理授权书 图片大小要求&#xff1a;1600 x 1200 dpi 图片长宽比&#xff1a;4&#xff1a;3 每章节格式要求 Week number 本周目标 1.通过背景学习&#xff0c;了解四足机器狗mini pupper上的微型控…