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 相关文章推荐
JavaScript Array扩展实现代码
Oct 14 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
jQuery pjax 应用简单示例
Sep 20 jQuery
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 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
PHP中的extract的作用分析
2008/04/09 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
js+div实现图片滚动效果代码
2014/02/10 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Django获取应用下的所有models的例子
2019/08/30 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python虚拟环境venv用法详解
2020/05/25 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
Python 爬虫性能相关总结
2020/08/03 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
交通事故调解协议书
2014/04/16 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
2014年度思想工作总结
2014/11/27 职场文书
采购员工作总结范文
2015/08/12 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书