Vue2.0中集成UEditor富文本编辑器的方法


Posted in Javascript onMarch 03, 2018

在vue的'项目中遇到了需要使用富文本编辑器的需求,在github上看了很多vue封装的editor插件,很多对图片上传和视频上传的支持并不是很好,最终还是决定使用UEditor。

这类的文章网上有很多,我进行了摸索、手写代码、汇总、排版,形成了这篇文章。

下载对应的UEditor源码

首先,去官网上下载UEditor的源码,根据你后台语言的不同下载对应的版本(PHP、Asp、.Net、Jsp)。

http://ueditor.baidu.com/website/download.html

下载之后,把资源放到 /static/ue/ 静态目录下。文档结构如下:

Vue2.0中集成UEditor富文本编辑器的方法

(我把UEditor放到了static静态目录下面,这里的文件不会被webpack打包,当然你也可以选择性地放进src中)

编辑 UEditor 编辑器 配置文件

我们打开 ueditor.config.js,修改其中的window.UEDITOR_HOME_UR配置,如下:

window.UEDITOR_HOME_URL = "/static/UE/";   //指定编辑器资源文件根目录
var URL = window.UEDITOR_HOME_URL || getUEBasePath();
ueditor.config.js文件有很多配置,可以在这里进行一些初始化的全局配置,比如编辑器的默认宽高等:
,initialFrameWidth:1000 //初始化编辑器宽度,默认1000
,initialFrameHeight:320 //初始化编辑器高度,默认320
其他的参数配置,在该文件中有详细列出,或者参考官方文档 http://fex.baidu.com/ueditor/

将编辑器集成到系统中

打开 /src/main.js 文件,插入下面的代码:

//ueditor
import '../static/UE/ueditor.config.js'
import '../static/UE/ueditor.all.min.js'
import '../static/UE/lang/zh-cn/zh-cn.js'
import '../static/UE/ueditor.parse.min.js'

开发公共组件 UE.vue

我们在 /src/components/ 目录下创建 UE.vue文件,作为我们的编辑器组件文件。

下面代码提供简单功能,具体使用根据需求完善该组件即可。

<template>
  <div>
    <script type="text/plain"></script>
  </div>
</template>
<script>
  export default {
    name: 'ue',
    data () {
      return {
        editor: null
      }
    },
    props: {
      value: '',
      config: {}
    },
    mounted () {
      this.editor = window.UE.getEditor('editor', this.config);
      this.editor.addListener('ready', () => {
        this.editor.setContent(this.value)
      })
    },
    methods: {
      getUEContent () {
        return this.editor.getContent()
      }
    },
    destroyed () {
      this.editor.destroy()
    }
  }
</script>

组件暴露了两个接口:

  • value是编辑器的文字
  • config是编辑器的配置参数

在其他页面中使用该组件

简单地创建一个需要UEditor的页面,再该页面中使用刚才封装好的UE.vue组件:

<template>
  <div>
    <Uediter :value="ueditor.value" :config="ueditor.config" ref="ue"></Uediter>
    <button @click="returnContent">显示编辑器内容</el-button>
    <div>{{dat.content}}</div>
  </div>
</template>
<script>
  import Uediter from '@/components/UE.vue';

  export default {
    data () {
      return {
        dat: {
          content: ''
        },
        ueditor: {
          value: '编辑器默认文字',
          config: {
            initialFrameWidth: 800,
            initialFrameHeight: 320
          }
        }
      }
    },
    methods: {
      returnContent () {
        this.dat.content = this.$refs.ue.getUEContent()
      }
    },
    components: {
      Uediter
    },
  }
</script>

效果如下:

Vue2.0中集成UEditor富文本编辑器的方法

What's more: 服务端需要做的配置

配置完上述内容后,控制台可能会出现"后台配置项返回格式出错,上传功能将不能正常使用!"的报错,
我们在编辑器中上传图片或者视频,也会出现响应的报错,这是因为没有配置服务器的请求接口,在ueditor.config.js中,对serverUrl进行配置:

// 服务器统一请求接口路径
, serverUrl: 'http://172.16.254.49:83/File/UEditor'  //地址管你们后端要去
Javascript 相关文章推荐
js中switch case循环实例代码
Dec 30 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
鼠标经过出现气泡框的简单实例
Mar 17 Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
BootStrap实现文件上传并带有进度条效果
Sep 11 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
Element Rate 评分的使用方法
Jul 27 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
js操作二进制数据方法
Mar 03 #Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 #Javascript
Vue的轮播图组件实现方法
Mar 03 #Javascript
在Vue中使用Compass的方法
Mar 02 #Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 #Javascript
关闭Vue计算属性自带的缓存功能方法
Mar 02 #Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 #Javascript
You might like
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
JQuery查找DOM节点的方法
2015/06/11 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
学习python (2)
2006/10/31 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python算法题 链表反转详解
2019/07/02 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python学习笔记之多进程
2020/08/06 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Python用户自定义异常的实现
2020/12/25 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
工地质量标语
2014/06/12 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
sql字段解析器的实现示例
2021/06/23 SQL Server