不多说直接上代码,无效你顺着网线来打我:

先看一下改后的效果图

第一步:找到wangEditor.js文件,一下代码直接全选复制,到wangEditor.js文件里面Ctrl+A 在Ctrl+V全部替换掉,这个我已经改好了,不用你再去找什么方法改指定的地方了,然后执行第二步:

(function (global, factory) {typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :typeof define === 'function' && define.amd ? define(factory) :(global.wangEditor = factory());
}(this, (function () { 'use strict';/*poly-fill
*/var polyfill = function () {// Object.assignif (typeof Object.assign != 'function') {Object.assign = function (target, varArgs) {// .length of function is 2if (target == null) {// TypeError if undefined or nullthrow new TypeError('Cannot convert undefined or null to object');}var to = Object(target);for (var index = 1; index < arguments.length; index++) {var nextSource = arguments[index];if (nextSource != null) {// Skip over if undefined or nullfor (var nextKey in nextSource) {// Avoid bugs when hasOwnProperty is shadowedif (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {to[nextKey] = nextSource[nextKey];}}}}return to;};}// IE 中兼容 Element.prototype.matchesif (!Element.prototype.matches) {Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {var matches = (this.document || this.ownerDocument).querySelectorAll(s),i = matches.length;while (--i >= 0 && matches.item(i) !== this) {}return i > -1;};}
};/*DOM 操作 API
*/// 根据 html 代码片段创建 dom 对象
function createElemByHTML(html) {var div = void 0;div = document.createElement('div');div.innerHTML = html;return div.children;
}// 是否是 DOM List
function isDOMList(selector) {if (!selector) {return false;}if (selector instanceof HTMLCollection || selector instanceof NodeList) {return true;}return false;
}// 封装 document.querySelectorAll
function querySelectorAll(selector) {var result = document.querySelectorAll(selector);if (isDOMList(result)) {return result;} else {return [result];}
}// 记录所有的事件绑定
var eventList = [];// 创建构造函数
function DomElement(selector) {if (!selector) {return;}// selector 本来就是 DomElement 对象,直接返回if (selector instanceof DomElement) {return selector;}this.selector = selector;var nodeType = selector.nodeType;// 根据 selector 得出的结果(如 DOM,DOM List)var selectorResult = [];if (nodeType === 9) {// document 节点selectorResult = [selector];} else if (nodeType === 1) {// 单个 DOM 节点selectorResult = [selector];} else if (isDOMList(selector) || selector instanceof Array) {// DOM List 或者数组selectorResult = selector;} else if (typeof selector === 'string') {// 字符串selector = selector.replace('/\n/mg', '').trim();if (selector.indexOf('<') === 0) {// 如 <div>selectorResult = createElemByHTML(selector);} else {// 如 #id .classselectorResult = querySelectorAll(selector);}}var length = selectorResult.length;if (!length) {// 空数组return this;}// 加入 DOM 节点var i = void 0;for (i = 0; i < length; i++) {this[i] = selectorResult[i];}this.length = length;
}// 修改原型
DomElement.prototype = {constructor: DomElement,// 类数组,forEachforEach: function forEach(fn) {var i = void 0;for (i = 0; i < this.length; i++) {var elem = this[i];var result = fn.call(elem, elem, i);if (result === false) {break;}}return this;},// cloneclone: function clone(deep) {var cloneList = [];this.forEach(function (elem) {cloneList.push(elem.cloneNode(!!deep));});return $(cloneList);},// 获取第几个元素get: function get(index) {var length = this.length;if (index >= length) {index = index % length;}return $(this[index]);},// 第一个first: function first() {return this.get(0);},// 最后一个last: function last() {var length = this.length;return this.get(length - 1);},// 绑定事件on: function on(type, selector, fn) {// selector 不为空,证明绑定事件要加代理if (!fn) {fn = selector;selector = null;}// type 是否有多个var types = [];types = type.split(/\s+/);return this.forEach(function (elem) {types.forEach(function (type) {if (!type) {return;}// 记录下,方便后面解绑eventList.push({elem: elem,type: type,fn: fn});if (!selector) {// 无代理elem.addEventListener(type, fn);return;}// 有代理elem.addEventListener(type, function (e) {var target = e.target;if (target.matches(selector)) {fn.call(target, e);}});});});},// 取消事件绑定off: function off(type, fn) {return this.forEach(function (elem) {elem.removeEventListener(type, fn);});},// 获取/设置 属性attr: function attr(key, val) {if (val == null) {// 获取值return this[0].getAttribute(key);} else {// 设置值return this.forEach(function (elem) {elem.setAttribute(key, val);});}},// 添加 classaddClass: function addClass(className) {if (!className) {return this;}return this.forEach(function (elem) {var arr = void 0;if (elem.className) {// 解析当前 className 转换为数组arr = elem.className.split(/\s/);arr = arr.filter(function (item) {return !!item.trim();});// 添加 classif (arr.indexOf(className) < 0) {arr.push(className);}// 修改 elem.classelem.className = arr.join(' ');} else {elem.className = className;}});},// 删除 classremoveClass: function removeClass(className) {if (!className) {return this;}return this.forEach(function (elem) {var arr = void 0;if (elem.className) {// 解析当前 className 转换为数组arr = elem.className.split(/\s/);arr = arr.filter(function (item) {item = item.trim();// 删除 classif (!item || item === className) {return false;}return true;});// 修改 elem.classelem.className = arr.join(' ');}});},// 修改 csscss: function css(key, val) {var currentStyle = key + ':' + val + ';';return this.forEach(function (elem) {var style = (elem.getAttribute('style') || '').trim();var styleArr = void 0,resultArr = [];if (style) {// 将 style 按照 ; 拆分为数组styleArr = style.split(';');styleArr.forEach(function (item) {// 对每项样式,按照 : 拆分为 key 和 valuevar arr = item.split(':').map(function (i) {return i.trim();});if (arr.length === 2) {resultArr.push(arr[0] + ':' + arr[1]);}});// 替换或者新增resultArr = resultArr.map(function (item) {if (item.indexOf(key) === 0) {return currentStyle;} else {return item;}});if (resultArr.indexOf(currentStyle) < 0) {resultArr.push(currentStyle);}// 结果elem.setAttribute('style', resultArr.join('; '));} else {// style 无值elem.setAttribute('style', currentStyle);}});},// 显示show: function show() {return this.css('display', 'block');},// 隐藏hide: function hide() {return this.css('display', 'none');},// 获取子节点children: function children() {var elem = this[0];if (!elem) {return null;}return $(elem.children);},// 获取子节点(包括文本节点)childNodes: function childNodes() {var elem = this[0];if (!elem) {return null;}return $(elem.childNodes);},// 增加子节点append: function append($children) {return this.forEach(function (elem) {$children.forEach(function (child) {elem.appendChild(child);});});},// 移除当前节点remove: function remove() {return this.forEach(function (elem) {if (elem.remove) {elem.remove();} else {var parent = elem.parentElement;parent && parent.removeChild(elem);}});},// 是否包含某个子节点isContain: function isContain($child) {var elem = this[0];var child = $child[0];return elem.contains(child);},// 尺寸数据getSizeData: function getSizeData() {var elem = this[0];return elem.getBoundingClientRect(); // 可得到 bottom height left right top width 的数据},// 封装 nodeNamegetNodeName: function getNodeName() {var elem = this[0];return elem.nodeName;},// 从当前元素查找find: function find(selector) {var elem = this[0];return $(elem.querySelectorAll(selector));},// 获取当前元素的 texttext: function text(val) {if (!val) {// 获取 textvar elem = this[0];return elem.innerHTML.replace(/<.*?>/g, function () {return '';});} else {// 设置 textreturn this.forEach(function (elem) {elem.innerHTML = val;});}},// 获取 htmlhtml: function html(value) {var elem = this[0];if (value == null) {return elem.innerHTML;} else {elem.innerHTML = value;return this;}},// 获取 valueval: function val() {var elem = this[0];return elem.value.trim();},// focusfocus: function focus() {return this.forEach(function (elem) {elem.focus();});},// parentparent: function parent() {var elem = this[0];return $(elem.parentElement);},// parentUntil 找到符合 selector 的父节点parentUntil: function parentUntil(selector, _currentElem) {var results = document.querySelectorAll(selector);var length = results.length;if (!length) {// 传入的 selector 无效return null;}var elem = _currentElem || this[0];if (elem.nodeName === 'BODY') {return null;}var parent = elem.parentElement;var i = void 0;for (i = 0; i < length; i++) {if (parent === results[i]) {// 找到,并返回return $(parent);}}// 继续查找return this.parentUntil(selector, parent);},// 判断两个 elem 是否相等equal: function equal($elem) {if ($elem.nodeType === 1) {return this[0] === $elem;} else {return this[0] === $elem[0];}},// 将该元素插入到某个元素前面insertBefore: function insertBefore(selector) {var $referenceNode = $(selector);var referenceNode = $referenceNode[0];if (!referenceNode) {return this;}return this.forEach(function (elem) {var parent = referenceNode.parentNode;parent.insertBefore(elem, referenceNode);});},// 将该元素插入到某个元素后面insertAfter: function insertAfter(selector) {var $referenceNode = $(selector);var referenceNode = $referenceNode[0];if (!referenceNode) {return this;}return this.forEach(function (elem) {var parent = referenceNode.parentNode;if (parent.lastChild === referenceNode) {// 最后一个元素parent.appendChild(elem);} else {// 不是最后一个元素parent.insertBefore(elem, referenceNode.nextSibling);}});}
};// new 一个对象
function $(selector) {return new DomElement(selector);
}// 解绑所有事件,用于销毁编辑器
$.offAll = function () {eventList.forEach(function (item) {var elem = item.elem;var type = item.type;var fn = item.fn;// 解绑elem.removeEventListener(type, fn);});
};/*配置信息
*/var config = {// 默认菜单配置menus: ['head', 'bold', 'fontSize', 'fontName', 'italic', 'underline', 'strikeThrough', 'foreColor', 'backColor', 'link', 'list', 'justify', 'quote', 'emoticon', 'image', 'table', 'video', 'code', 'undo', 'redo'],fontNames: ['宋体', '微软雅黑', 'Arial', 'Tahoma', 'Verdana'],colors: ['#000000', '#eeece0', '#1c487f', '#4d80bf', '#c24f4a', '#8baa4a', '#7b5ba1', '#46acc8', '#f9963b', '#ffffff'],// // 语言配置// lang: {//     '设置标题': 'title',//     '正文': 'p',//     '链接文字': 'link text',//     '链接': 'link',//     '插入': 'insert',//     '创建': 'init'// },// 表情emotions: [{// tab 的标题title: '默认',// type -> 'emoji' / 'image'type: 'image',// content -> 数组content: [{alt: '[坏笑]',src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png'}, {alt: '[舔屏]',src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png'}, {alt: '[污]',src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png'}]}, {// tab 的标题title: '新浪',// type -> 'emoji' / 'image'type: 'image',// content -> 数组content: [{src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/7a/shenshou_thumb.gif',alt: '[草泥马]'}, {src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/60/horse2_thumb.gif',alt: '[神马]'}, {src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/bc/fuyun_thumb.gif',alt: '[浮云]'}]}, {// tab 的标题title: 'emoji',// type -> 'emoji' / 'image'type: 'emoji',// content -> 数组content: '												

wangEditor 上传本地视频和图片到oss服务器并在富文本回显。相关推荐

  1. wangEditor上传本地视频

    wangEditor是一个轻量级web富文本编辑器,一般可以满足用户需求,但是有特殊要求的可以对其进行修改 源文件是上传Html视频格式,如果想要变成上传本地视频需要做以下修改: /*上传视频*/// ...

  2. wangeditor上传本地视频的方法

    在官方版本的上传视频功能里,是不支持上传本地视频的,如果需要实现上传本地视频文件,可以自己定义一个上传方法. 实现思路: 1.使用input -> type="file",将 ...

  3. qq空间 上传html,qq空间怎么上传本地视频两种上传方式(说说/日志)

    首先打开QQ空间,我们有两种上传本地视频到QQ空间的方式, 第一种是说说上传,第二种是日志上传. 先来说第一种, 以上是我们打开qq空间以后,里面说说界面,后面有一组类似冒号的东西,把鼠标移至那里,然 ...

  4. C# Umeditor 编辑器上传本地视频、本地文件

    Umeditor 最近在做一个网站,涉及到网站文章的编辑.Umeditor是一个很好的选择,但是看了一下Umeditor,发现不能上传本地视频和本地文件,而项目又要得比较急,所以以我觉得最快的方式修改 ...

  5. tinymce富文本编辑器的视频插件如何上传本地视频

    最近使用了tinymce富文本编辑器的视频上传功能,发现默认只能填写视频链接,不能上传本地的视频.为此,我专门研究下如何上传本地视频. 版本:tinymce版本是^5.0.16,@tinymce/ti ...

  6. wangeditor富文本编辑器添加上传本地视频功能

    wangeditor.js全部代码(可选择复制) (function (global, factory) {typeof exports === 'object' && typeof ...

  7. PHP怎么做成Qq空间相册,qq空间如何上传本地视频 相片制作视频传到QQ空间

    相信很多网友都有上传QQ空间照片的喜好,我就是其中一个,拍了一张漂亮的PP,恨不得马上传到空间,炫耀一番.上传的照片日积月累,越来越多.平常要一张张的观看照片挺费时.最近学了一个新招,可以使用狸窝照片 ...

  8. quill上传本地视频(保姆级教学)

    设置富文本参数 // 富文本框参数设置editorOption: {modules: {ImageExtend: {loading: false,name: 'file',action: UPLOAD ...

  9. tinymce编辑器上传本地视频预览

    小白一枚,最近搞搞tinymce编辑器上传视频预览,视频标签变成了图片标签问题,看看之前其他博主的说明,感jio好麻烦,官网的也没整明白,所以自己瞎整整.勿喷!勿喷!勿喷!重要事情说三遍 首先是在ti ...

最新文章

  1. 避坑_node-sass安装问题及解决办法
  2. html5文件阅读器api,html 5 读取本地文件API
  3. 给孩子讲100个科学道理,不如带他做这些趣味实验!
  4. java中static x 5_java中static作用详解
  5. (计算机组成原理)第三章存储系统-第二节:基本的半导体原件和存储器芯片的原理
  6. MySQL查询数据表中数据记录(包括多表查询)
  7. 关闭Windows10 易升
  8. 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
  9. linux 消息队列最大值,linux 消息队列的限制
  10. 数据结构——栈与队列的异同
  11. C语言——单词精确查找
  12. matlab车牌识别错误,matlab车牌识别调入切割函数后就不出图了?也没有显示错误...
  13. E4A易安卓Apost提交文本合并编码相关
  14. Go语言实现获取有道网页结果
  15. talib.AROON指标详解
  16. Oracle Data Guard的三种保护模式
  17. 举个栗子!Tableau 技巧(189):用拱形图 ARC chart 呈现数据分布
  18. python实现栅格计算器功能
  19. 自动化测试如何维护,维护过程中遇到哪些问题?
  20. GSM MODEN短信发送模块详解(短信的读取、发送过程和编码、解码过程)

热门文章

  1. SEO黑帽技术 - 3天关键词快速上首页
  2. “四书五经”经典语句
  3. 车辆维修、拖车、修车、应急救援、汽车救援、拖车脱困、电瓶搭电、流动补胎、换胎、道路救援、应急送油、抢修、快修、小程序、地库救援、高速救援、吊车救援、订单指派、钱包提现、axure原型
  4. 不要用碎片化的时间去学习新知识!除非它是简单的
  5. 基础爬虫案例爬取实战
  6. 2018年河北单招计算机试题,2018年河北单招英语模拟试题一【含答案】.doc
  7. [硬件项目] 2、汽车倒车雷达设计——基于专用倒车雷达芯片GM3101的设计方案与采用CX20106A红外线检测芯片方案对比...
  8. npm installl preinstall
  9. windows 向 iPad导入文件
  10. Android 屏幕常亮