vue项目中使用tinymce编辑器的步骤详解


Posted in Javascript onSeptember 11, 2018

Tinymce富文本也是一款很流行编辑器

          把文件放在static下,然后在index.html文件中引入这个文件

<script src="static/tinymce/tinymce.min.js"></script>
<tinymce :height=200 ref="editor" v-model="editForm.fdcNote"></tinymce>

         在其他子文件中引入这个

import tinymce from '../components/Tinymce';
 components: {
 tinymce
 },

然后就可以调用起这个组件了。

下面看下vue项目中使用tinymce编辑器的方法,具体内容如下所示:

第一步:npm install tinymce -S

第二步:创建组件

//增加模版
<template>
 <div>
  <textarea :value="value"></textarea>
 </div>
</template>
//在script中引入
import tinymce from "tinymce/tinymce";
import "tinymce/themes/modern/theme";
import "tinymce/plugins/paste";//这个到最下面那个为需要使用的工具栏模块
import "tinymce/plugins/link";
import "tinymce/plugins/lists";
import "tinymce/plugins/image";
import "tinymce/plugins/contextmenu";
import "tinymce/plugins/wordcount";
import "tinymce/plugins/colorpicker";
import "tinymce/plugins/textcolor";
import "tinymce/plugins/media";

第三步:对tinymce进行个性化配置

tinymceinit() {
   const _this = this;
   const setting = {
    selector: "#tinymce",
    language: "zh_CN",//语言设置中文
    menubar: false,//去除文件栏
    branding: false,//去除右下角的'由tinymce驱动'
    elementpath: false,//左下角的当前标签路径
    content_css: ["css文件路径"],//对编辑器内部需要的一些样式
    language_url: "zh_CN.js文件的路径",//导入中文语言文件
    skin_url: "../../../static/skins/lightgray",//在node_modules中tinymce文件夹中
    setup: function(editor) {//设置自定义功能的按钮
     editor.addButton("uploadimg", {//单个按钮,此处的uploading是该按钮的名称
      icon: "image",  //显示的图像
      tooltip: "上传图片",//鼠标放上去后现在是内容
      onclick: function() {}
     });
     editor.addButton("geshi", {//按钮列表,此处的geshi是该按钮的名称
      text: "格式",  //显示的文字
      type: "menubutton",
      menu: [
       {
        text: "标签",
        onclick: function() {}
       }
      ]
     });
    },
    plugins:
     "lists paste link image contextmenu wordcount colorpicker textcolor media imagetools",//对应上方import引入的文件,下面toolbar需要使用到
    toolbar:
     "geshi bold bullist numlist | uploadimg | alignleft aligncenter alignright alignjustify outdent indent"//定义工具栏
   };
   Object.assign(setting, _this.setting);
   tinymce.init(setting);
  },

第四步:在watch中监听传入的value,并修改tinymce的内容

value(newV, oldV) {
  tinymce.activeEditor.setContent(newV);
},

其他:设置图片

第一种:使用tinymce提供的接口

images_upload_handler: function (blobInfo, success, failure) {
  //blobInfo图片对象
  uploadimg(){ //上传图片(自己写的方法)
    success('图片的路径')
    failure('错误提示')
  }
}

第二种:我自己使用的方法,简单说一下思路

1.使用setup自定义一个按钮,按钮的点击事件就是选择图片(参考input,type=file),并上传

2.将服务器返回的路径包装成<img src='返回的路径'>

3.将自己包装的img标签放入鼠标当前指针处

let dom = tinymce.activeEditor.dom;
tinyMCE.execCommand("mceInsertContent",false,dom.createHTML("img", {src: 路径}));

总结

以上所述是小编给大家介绍的vue项目中使用tinymce编辑器的步骤详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
JavaScript 学习笔记(十四) 正则表达式
Jan 22 Javascript
javascript中最常用的继承模式 组合继承
Aug 12 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
Dec 18 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
微信小程序 教程之条件渲染
Oct 18 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
微信小程序入门之指南针
Oct 22 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 #Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 #Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 #Javascript
js监听html页面的上下滚动事件方法
Sep 11 #Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 #Javascript
Vue项目数据动态过滤实践及实现思路
Sep 11 #Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 #Javascript
You might like
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Python循环语句之break与continue的用法
2015/10/14 Python
python制作最美应用的爬虫
2015/10/28 Python
python2.7到3.x迁移指南
2018/02/01 Python
Python统计单词出现的次数
2018/04/04 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
python实现滑雪游戏
2020/02/22 Python
python 爬虫请求模块requests详解
2020/12/04 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
服务整改报告
2014/11/06 职场文书
优秀教师推荐材料
2014/12/16 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年维修工作总结
2015/04/25 职场文书
医院党建工作总结2015
2015/05/26 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
使用CSS实现音波加载效果
2023/05/07 HTML / CSS