富文本编辑器(wangEditor)
近期在产品的开发工作中遇到要使用富文本编辑器的地方。于是对比了几款编辑器, 最后选择了wangEditor。
优点:轻量、简洁、界面美观、文档齐全。 缺点: 相较于百度ueditor等编辑器功能较少。 文档地址:https://www.kancloud.cn/wangfupeng/wangeditor3/332599
使用方式:
1. 创建一个容器 :
<div id="editor"> </div>
2.引入js文件
<script src="~/Editor/wangEditor.js"></script>
3.初始化
// 富文本编辑器
var E = window.wangEditor;
var editor = new E("#editor")
editor.create()

4.上传图片
支持网络图片与本地上传
网络图片直接输入地址即可。
本地上传默认是关闭的。分为Base64与上传至服务器。
4.1 Base64格式
开启本地上传Base64
// 启用"上传图片"tab base64格式
editor.customConfig.uploadImgShowBase64 = true;
开启之后直接拖拽或手动选择上传即可。

Base64码

4.2 上传至服务器
配置上传接口,但是不能与Base64同时配置。
editor.customConfig.uploadImgServer = '/Storage/Upload'
js上传配置:用的官方文档的默认配置。 详情可以参考官网文档:https://www.kancloud.cn/wangfupeng/wangeditor3/335782
注:所有的配置代码都需要放在 editor.create() 之前。
editor.customConfig.uploadImgHooks = {
before: function (xhr, editor, files) {
// 图片上传之前触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,files 是选择的图片文件
// 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传
// return {
// prevent: true,
// msg: '放弃上传'
// }
},
success: function (xhr, editor, result) {
// 图片上传并返回结果,图片插入成功之后触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
},
fail: function (xhr, editor, result) {
console.log(result)
// 图片上传并返回结果,但图片插入错误时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
},
error: function (xhr, editor) {
// 图片上传出错时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
},
timeout: function (xhr, editor) {
// 图片上传超时时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
},
// 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式,可使用该配置
// (但是,服务器端返回的必须是一个 JSON 格式字符串!!!否则会报错)
customInsert: function (insertImg, result, editor) {
// 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
// insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
// 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片:
var url = result.Url
insertImg(url)
// result 必须是一个 JSON 格式字符串!!!否则报错
}
}
4.3 后端接口
只需将文件的最终存储路径按指定的格式/或自定义格式放回即可。


5.将编辑器内的数据传递给后台方法
我这里是先将编辑器内的数据赋值给 textarea ,然后使用ajax的方式提交textarea的数据。
5.1 创建textarea 并隐藏
<textarea id="text1" style="width:100%; height:200px;display:none;"></texta
5.2 在js中配置
// 隐藏的文本域
var $text1 = $('#text1')
// 监听编辑器内容的变化,html为变化后的数据
editor.customConfig.onchange = function (html) {
// 监控变化,同步更新到 textarea
$text1.val(html)
}
5.3 提交数据并在后台保存
添加一个按钮
<button id="btnSubmit2">保存 </button>
ajax提交
$("#btnSubmit2").click(function () {
// 文本域的内容
var text1 = $('#text1').val();
$.ajax({
type: "post",
data: {
"editorHtml": text1
},
url: "/Editor/Save",
success: function (data) {
console.log(data)
});
})
6.其他配置及功能请直接访问文档:
https://www.kancloud.cn/wangfupeng/wangeditor3/335782
富文本编辑器(wangEditor)的更多相关文章
- 轻量级富文本编辑器wangEditor源码结构介绍
1. 引言 wangEditor——一款轻量级html富文本编辑器(开源软件) 网站:http://www.wangeditor.com/ demo演示:http://www.wangeditor.c ...
- 富文本编辑器 - wangEditor 上传图片
效果: . 项目结构图: wangEditor-upload-img.html代码: <html> <head> <title>wangEditor-图片上传< ...
- 轻量级富文本编辑器wangEditor
开发公司一个系统的时候需要一个富文本编辑器,找了几个,最后选择这个,蛮不错的. 百度搜索wangEditor,进入官网根据所介绍的使用进行开发就可以了,很不错的一个工具.
- 前端轻量级、简单、易用的富文本编辑器 wangEditor 的基本用法
1.富文本编辑器市面上有很多,但是综合考虑之后wangEditor是最易用的框架,推荐使用 首先进入官网 http://www.wangeditor.com 基本是2中方式引入: 使用CDN://un ...
- 富文本编辑器 wangEditor.js
1.引用 wangEditor 相关js 和 css 下载地址:https://files.cnblogs.com/files/kitty-blog/WangEditor.zip 3.页面: < ...
- 富文本编辑器 - wangEditor 插入代码
效果: 项目结构: 注意事项: highlightJS 代码高亮插件,wangEditor 本身就是集成的highlightJS代码高亮插件. 在wangEditor-1.3.12.js里找到var ...
- 简易的富文本编辑器WangEditor
网址http://www.wangeditor.com/ var E = window.wangEditor; var editor = new E('#editor') // 或者 var edit ...
- 富文本编辑器 - wangEditor 表情
效果: 文件夹中的表情: 代码:
- 重构wangEditor(web富文本编辑器),欢迎指正!
提示:最新版wangEditor请参见:wangEditor.github.io 或者 https://github.com/wangfupeng1988/wangEditor 1. 前言 (下载源码 ...
随机推荐
- Centos7 设置redis开机自启
Centos7 设置redis开机自启 标签(空格分隔):Linux 环境 Centos7.1 redis-3.0.6 chkconfig方式 **service和chkconfig命令的功能好像都被 ...
- [Leetcode] 第338题 比特位计数
一.题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 ...
- 神奇的互换身体术--java的类型擦除
故事背景 <互换身体>是由环球影业发行的喜剧电影,于2011年8月5日在美国上映.该片由大卫·道金执导,瑞安·雷诺兹.杰森·贝特曼.奥利维亚·王尔德等主演.该片讲述了一位居家好男人和一位蜂 ...
- 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目
jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...
- Mybatis源码解析,一步一步从浅入深(一):创建准备工程
Spring SpringMVC Mybatis(简称ssm)是一个很流行的java web框架,而Mybatis作为ORM 持久层框架,因其灵活简单,深受青睐.而且现在的招聘职位中都要求应试者熟悉M ...
- 2018年蓝桥杯java b组第八题
标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞" ...
- Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)
书接上文 首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题.学习新东西,不能怕掉坑里... 查询网上别人的经历说需要把根目录下的lib目录下的所有包 ...
- selenium-03-常用操作
基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JavaScript编写的. Selenium工具有4种:Seleni ...
- Gradle 梳理:安装、入门使用方法
Gradle 教程:第一部分,安装[翻译] 原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-se ...
- FILETIME类型到LARGE_INTEGER类型的转换
核心编程第5版 245页到247页的讲到SetWaitableTimer函数的使用 其中提到 FILETIME类型到LARGE_INTEGER类型的转换问题,如下代码 //我们声明的局部变量 HAND ...