1..项目创建与初始化

在安装好脚手架的依赖后,要执行 npm install vue-html5-editor -S 来安装这个富文本插件,由于这个富文本插件的图标是依赖font-awesome.css的,所以要cnpm install font-awesome --save安装这个css然后在main.js中引入这个css   import 'font-awesome/css/font-awesome.min.css'

2.使用vue-html5-editor富文本编辑器

新建一个common文件夹用于存放我们的工具类js文件,然后将下面的代码copy进去:

import Vue from 'vue'import VueHtml5Editor from'vue-html5-editor'exportdefault function() {

let opt={//全局组件名称,使用new VueHtml5Editor(options)时该选项无效

name: "vue-html5-editor",//是否显示模块名称,开启的话会在工具栏的图标后台直接显示名称

showModuleName: true,//自定义各个图标的class,默认使用的是font-awesome提供的图标

icons: {

text:"fa fa-pencil",

color:"fa fa-paint-brush",

font:"fa fa-font",

align:"fa fa-align-justify",

list:"fa fa-list",

link:"fa fa-chain",

unlink:"fa fa-chain-broken",

tabulation:"fa fa-table",

image:"fa fa-file-image-o",

hr:"fa fa-minus",

eraser:"fa fa-eraser",

undo:"fa-undo fa","full-screen": "fa fa-arrows-alt",

info:"fa fa-info",

},//配置图片模块

image: {//文件最大体积,单位字节

sizeLimit: 512 * 1024 * 10,//上传参数,默认把图片转为base64而不上传

//upload config,default null and convert image to base64

upload: {

url:null,

headers:{},

params: {},

fieldName:{}},//压缩参数,默认使用localResizeIMG进行压缩,设置为null禁止压缩

//width和height是文件的最大宽高

compress: {

width:600,

height:600,

quality:80},//响应数据处理,最终返回图片链接

uploadHandler(responseText){//default accept json data like {ok:false,msg:"unexpected"} or {ok:true,data:"image url"}

var json =JSON.parse(responseText);if(json.status == 200){returnjson.data

}else{

alert(json.error)

}

}

},//语言,内建的有英文(en-us)和中文(zh-cn)

language: "zh-cn",//自定义语言

i18n: {"zh-cn": {"align": "对齐方式","image": "图片","list": "列表","link": "链接","unlink": "去除链接","table": "表格","font": "文字","full screen": "全屏","text": "排版","eraser": "格式清除","info": "关于","color": "颜色","please enter a url": "请输入地址","create link": "创建链接","bold": "加粗","italic": "倾斜","underline": "下划线","strike through": "删除线","subscript": "上标","superscript": "下标","heading": "标题","font name": "字体","font size": "文字大小","left justify": "左对齐","center justify": "居中","right justify": "右对齐","ordered list": "有序列表","unordered list": "无序列表","fore color": "前景色","background color": "背景色","row count": "行数","column count": "列数","save": "确定","upload": "上传","progress": "进度","unknown": "未知","please wait": "请稍等","error": "错误","abort": "中断","reset": "重置"}

},//隐藏不想要显示出来的模块

hiddenModules: [],//自定义要显示的模块,并控制顺序

visibleModules: [//"text",//"color",

"font","align",//"list",//"link",//"unlink",//"tabulation",

"image",//"hr",//"eraser",

"undo",//"full-screen",//"info",

],//扩展模块,具体可以参考examples或查看源码

//extended modules

modules: {//omit,reference to source code of build-in modules

}

};

Vue.use(VueHtml5Editor, opt);

}

接着在main.js中引入这个初始化的函数:

import initRichText from './common/initHTMLEditor.js'import'font-awesome/css/font-awesome.min.css'

3.使用组件

export default {

data() {

return {

content: ""

};

},

methods: {

updateData(e = "") {

let c1 = e.replace(/

let c2 = c1.replace(/

this.content = c2;

console.log(this.content);

}

}

};

.rich-text-test{

margin-top: 40px;

}

这个height属性是设置内容区的高度,content是内容区的数据内容,@change事件是内容区的监听事件,会在发生变化时触发,该函数接收一个参数,表示当前编辑器中的内容。运行结果如下(这里对图片的操作是转成base64的字符串):

4.常见问题解决

(1)自定义工具栏的模块

如果不想要显示这么多的工具,则只要配置visibleModules即可:

修改initHTMLEditor.js  中的配置即可

(2)移动端图片上传样式的处理

这里我没有配置服务端的上传文件的接口,所以我就直接将图片转成base64的来处理。但是这样会有问题,在PC端图片是可以修改大小的,但是在移动端上传的图片上是原图,也就是很大,图文混排的时候非常不好看,也不好编辑。这时候我做的处理挺投机取巧的,但是也是可行的方法。我们知道change函数是在内容发生变化时触发的,这时候我们只要将获取到的内容做一下修改即可,看代码:

updateData(e = "") {

let c1= e.replace(/

let c2= c1.replace(/

},

这样就可以了。

(3)图片上传的主要问题

图片上传的方法这里分两种。

第一种是默认把图片转为base64而不上传,最后点击发布上传所有。这里有个缺点是如果上传的图片太大而且有多张的话转为base64会很大,会出现因为文件太大上传不过去的情况,所以可以放弃这种方法。

第二种是在配置文件中(上面说的新建的js中)修改几行代码即可。原理是每上传一张图片,先上传到服务器然后返回一个图片链接地址,至于返回链接地址怎么展示在页面的问题,插件已经为我们封装的很好,直接在下面的uploadHandler函数return返回的链接就可以啦。在做的过程中出现了上传图片失败问题,原因出在接口问题上,这里的接口写成input file上传不是base64的接口就可以。

//配置图片模块

image: {//文件最大体积,单位字节

sizeLimit: 512 * 1024 * 10,//上传参数,默认把图片转为base64而不上传

//upload config,default null and convert image to base64

upload: {

url:'图片上传接口地址',

headers:{},

params: {},

fieldName:'file'},//压缩参数,默认使用localResizeIMG进行压缩,设置为null禁止压缩

//width和height是文件的最大宽高

compress: {

width:600,

height:600,

quality:80},//响应数据处理,最终返回图片链接

uploadHandler(responseText){//default accept json data like {ok:false,msg:"unexpected"} or {ok:true,data:"image url"}

var json =JSON.parse(responseText);if(json.status == 200){returnjson.data

}else{

alert(json.error)

}

}

},

vue获取编辑器纯文字_前端富文本编辑器 vue-html5-editor相关推荐

  1. php去除编辑器html标签,js处理富文本编辑器转义、去除转义、去除HTML标签

    富文本编辑器生成的HTML标签,进行转义,然后写入数据库,防止脚本注入: function htmlEncode(value){ return $(' } 从数据库拿出的转义后的HTML标签内容,先得 ...

  2. 前端学习(2732):重读vue电商网站42之添加富文本编辑器

    vue-quill-editor 官方文档传送门 通过 vue-ui 界面,可以安装我们所需要的依赖,或者使用下文 npm 或 yarn安装. NPM Js npm install vue-quill ...

  3. vue管理后台项目中使用wangEditor富文本编辑器

    背景 公司需要做一个后台文章管理的模块,通过富文本编辑器编辑文章,在前端显示.调研了很久,决定使用wangEditor -- 轻量级 web 富文本编辑器,配置方便,使用简单.一些编辑器的说明. 开始 ...

  4. 前端富文本编辑器哪家强?我推荐Quill,搭配丰富插件使用美滋滋

    最近在用vue + element-ui对公司的后台管理系统进行重构,听说这个后台管理系统是零几年的产物,历史悠久,看界面就看得出是前后端不分离时期,PHP后端工程师做的,不符合我们95后程序员的审美 ...

  5. 百度富文本编辑jsp上传_百度富文本编辑器教程,从入门到放弃

    原标题:百度富文本编辑器教程,从入门到放弃 百度UEditor 资源与项目分离-完全教程 夏老师人真好 又求到一篇技术贴 来来来 继续掏出小本本 什么是百度UEditor? 百度UEditor是一款富 ...

  6. js富文本编辑器_自制富文本编辑器

    前言 介绍一款 markdown富文本编辑器 源码 https://gitee.com/pingfanrenbiji/markdown-nice 这里要感谢一些开源作者 这位大佬的微信公众号是 本地启 ...

  7. winform html编辑器控件,一个WinForm富文本编辑器控件

    WinForm 上的富文本编辑器简直不要太少,虽然有 RichEdit,但是这个鬼极难用而且复杂,在插入图片和表格的时候简直抓狂,还要理解复杂的 RTF 格式. 我希望有一个文本控件,包括基本的格式设 ...

  8. java web编辑器插件_UEditer 是一个富文本编辑器,可以作为 插件放到javaweb项目中使用,很好用~ Develop 238万源代码下载- www.pudn.com...

    文件名称: UEditer下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 19833 KB 上传时间: 2015-03-19 下载次数: 0 提 供 者: 陈琳杰 ...

  9. layui富文本编辑器上传图片java_解决layui富文本编辑器图片上传无法回显的问题...

    layui富文本编辑器用起来挺方便的,但是不足的是不提供图片上传的接口,需要自己写上传接口,而且返回的数据类型要符合layui富文本编辑器图片上传插件的要求,否则图片可以上传成功,但是无法回显,这个问 ...

最新文章

  1. 深度洞悉2017企业IT三大关注焦点
  2. hung-yi lee_p18_图神经网络(cont.)
  3. JS Array 中 shift 和 pop 的妙用
  4. AI生成的代码你敢用吗?有人给最近走红的Copilot做了个“风险评估”
  5. 使用vs2019编写dll
  6. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
  7. 大三寒假--算法复习
  8. php mysql实现删除功能_这个PHP / MySQL删除功能是否安全?
  9. 如何在WES 7下使用EWF功能/HORM功能
  10. linux 恢复member1账户,Linux操作系统第9讲 帐户管理和权限管理.ppt
  11. 计算机文件自定义排序6,文件夹如何自定义排序
  12. 蚁群背包问题matlab代码,蚁群算法--背包问题
  13. 3G 模块驱动应用开发总结
  14. 印象团队EverTeam for Mac(团队协作工具)
  15. 刮刮卡 java代码_Android刮刮卡效果实现代码
  16. sencha app watch php,使用新的SenchaCmd4命令appwatch
  17. 三次方分解因式重要公式
  18. spark配置elasticsearch属性汇总(基于es7)
  19. mysql的下载安装
  20. linux查看日志常用命令

热门文章

  1. 【JAVA 第三章 流程控制语句】课后习题 输出正整数的顺序相反数
  2. Centos Docker 安装 Redis 并测试使用记录
  3. git配置远程仓库,同时配置github、gitee、gitlab,完美解决方案
  4. C#设计模式之8-组合模式
  5. 黑猫警长 stl_如何使用当地警长保护您的信息
  6. 现实世界的数据结构:JavaScript中的表格和图形
  7. node.js 程序_如何不使用外部程序包创建Node.js Web应用程序
  8. 解决VSCODE因为在此系统上禁止运行脚本报错
  9. docker copy异常
  10. VS2103没有“dirent.h”文件