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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
Javascript的闭包详解
Dec 26 Javascript
javascript设计简单的秒表计时器
Sep 05 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
详解webpack自定义loader初探
Aug 29 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
Jun 10 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
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
node.js的事件机制
2017/02/08 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
高职教师岗位职责
2013/12/24 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
大学生入党自荐书
2015/03/05 职场文书
会计试用期自我评价
2015/03/10 职场文书
小学感恩节活动总结
2015/03/24 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python