如何在vue项目中使用百度编辑器ueditor
百度编辑器官方并没有提供vue项目使用说明,目前网上也有不少人实现了相关功能,这里就不再重复,只是针对自身项目碰到的情况做个记录,就当是熟悉了一遍富文本编辑器的代码结构。
按照网上的做法,基本可以实现编辑器的基本使用,但存在两个问题
a、编辑器内容回显,调用官方的setContent方法无法将后端返回的数据现在在编辑起立
b、无法实现图片上传,官方提供了asp/jsp/php的配置方法,未提供vue项目的配置办法,这就要自己去处理了
第一个问题:
因为使用编辑器自带的setContent()方法无法将后端返回的数据显示出来,就尝试输出编辑器对象,看看这个对象上是否有对应的属性或方法能用
从输出的所有属性上看并没有setContent()方法,好在找到了一个
this.$refs.ue.editor.body.innerHTML
属性
将后端获取到的数据复制给该属性就实现了数据的回显
第二个问题
在配置文档中有一个serverUrl属性,在ueditor.config.js文件中,该属性是编辑器图片上传接口属性,插件初始化时会检测该接口是否可用来判断是否初始化图片上传功能,网上很多教程都没有解决这个问题,这也是本文的价值所在。
按照官方文档给serverUrl赋值自己的上传接口,遗憾的是已经无效,仔细翻看源码后发现了下面一行:
serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?':'&') + 'action=' + (actionName || '');
再到浏览器审查元素里对比发现插件给我们配置的接口做了拼接处理,如:
http://aa.cc.cc/upload
变成了
http://aa.cc.cc/upload?encode=utf-8&action=uploadimg
由于后端严格限制了路由,这种网址就无法访问了,所以只能处理掉这段插件代码。这里要注意的是插件中多个地方涉及到了对上传接口地址的拼接,可以全局搜索一下,需要哪里改哪里。
本项目在上传时统一需要携带一个token,插件本身是没有这个功能的,翻看源码发现,在ueditor.all.js中有这样一段代码
configUrl && UE.ajax.request(configUrl,{
// ....
})
这段代码就是发送请求,检测接口是否可用的关键,之前因为缺少token一直提示接口未正确配置,这里改一下,加个token参数即可,代码大概在8074行
'data': {
token: localStorage.getItem("token")
},
修改后接口就通了
百度ueditor有两个上传图片的地方,如图:
左侧适合传单图,右侧适合传多图。
单图其实就是表单提交,多图则是异步提交,因本项目token必须挡在请求头中要实现该功能必须修改提交方式,这就麻烦了点,所以本次暂不处理单图上传的情况。
多图上传则设计到一个dialog弹窗,代码在“UE/dialogs/image/images.js”中,改函数封装了很多构造函数,分别针对四个tab
如何在vue项目中使用百度编辑器ueditor的更多相关文章
- 如何在VUE项目中添加ESLint
如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...
- 如何在Vue项目中给路由跳转加上进度条
1.前言 在平常浏览网页时,我们会注意到在有的网站中,当点击页面中的链接进行路由跳转时,页面顶部会有一个进度条,用来标示页面跳转的进度(如下图所示).虽然实际用处不大,但是对用户来说,有个进度条会大大 ...
- 如何在Vue项目中使用Typescript
0.前言 本快速入门指南将会教你如何在Vue项目中使用TypeScript进行开发.本指南非常灵活,它可以将TypeScript集成到现有的Vue项目中任何一个阶段. 1.初始化项目 首先,创建一个新 ...
- vue项目中使用百度统计
统计有多少人访问了自己的网站(wap端pc web端都适用),或者更细的统计网站每个页面的访问量,可以使用百度统计 百度统计传送门 按提示注册登录即可 登录后-->管理-->新增网站,配置 ...
- 如何在Vue项目中,通过点击DOM自动定位VScode中的代码行?
作者:vivo 互联网大前端团队- Youchen 一.背景 现在大型的 Vue项目基本上都是多人协作开发,并且随着版本的迭代,Vue 项目中的组件数也会越来越多,如果此时让你负责不熟悉的页面功能开发 ...
- 转:如何在Vue项目中使用vw实现移动端适配
https://www.w3cplus.com/mobile/vw-layout-in-vue.html 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flex ...
- 如何在Vue项目中引入jQuery?
假设你的项目由vue-cli初始化 (e.g. vue init webpack my-project). 在你的vue项目目录下执行: npm install jquery --save-dev 打 ...
- 如何在Vue项目中使用vw实现移动端适配(转)
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...
- 如何在Vue项目中使用vw实现移动端适配
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在< 使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着 viewport 单位 ...
随机推荐
- 详解Android插件化开发-资源访问
动态加载技术(也叫插件化技术),当项目越来越庞大的时候,我们通过插件化开发不仅可以减轻应用的内存和CPU占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块. 通常我们把安卓资源文件制 ...
- Onvif开发之服务端发现篇
服务端的开发相对来说比客户端稍微难一点,也就是给填充相关结构体的时候,需要一点一点的去查阅,验证各个结构中各个成员各自代表什么意思,以及对应的功能需要是那个接口实现,这是开发服务端最头疼的事情.(在开 ...
- groupdel---删除指定的工作组
groupdel命令 groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow.若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组 ...
- Duboo入门示例(Idea开发环境)
在学习Dubbo分布式框架时的官方入门例子,很有代表性.简单清晰. 有关Dubbo的概念.概述和简单的配置文件,可以看官方文档的简述 会很快对Duboo有个整体的概念. 准备工作: 下载示例,点击这里 ...
- 经验之谈—让你看明确block
事实上我感觉不常常使用block的朋友.对block应该是比較陌生的,那么如今我们来扒开block的真面目,看看block的本质 普通的局部变量.block内部仅仅会引用它初始的值(block定义那一 ...
- 32款iOS开发插件和工具介绍[效率]
插件和工具介绍内容均收集于网络,太多了就不一一注明了,在此谢过! 1.Charles 为了调试与server端的网络通讯协议.经常须要截取网络封包来分析. Charles通过将自己设置成系统的网络 ...
- code blocks主题颜色配置
添加配置文件 注意:在添加这些自定义配置文件之前一定要先将之前的文件配置备份! 在添加时一定要确保Code::Blocks**没有**在运行!下载下面的文件,并将其添加到C:\Users\<你的 ...
- vue中判断路由变化
使用from.path和to.path判断路由跳转 在methods里面写函数: 当然,上边函数里边可以做很多事情.
- 配置mysql的ODBC数据源
如果你已经安装好了mysql和mysql连接驱动,则可以向下进行了 打开控制面板,以小图标的形式查看,找到管理工具 打开管理工具,找到数据源(odbc),打开 在图片中所圈出的三个标签中随便选一个,点 ...
- Linux经常使用命令(七) - cp
cp命令用来拷贝文件或者文件夹.是Linux系统中最经常使用的命令之中的一个.普通情况下.shell会设置一个别名.在命令行下拷贝文件时,假设目标文件已经存在.就会询问是否覆盖.无论你是否使用-i參数 ...