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 相关文章推荐
基于jquery封装的一个js分页
Nov 15 Javascript
jquery改变tr背景色的示例代码
Dec 28 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
JQuery实现图片轮播效果
Sep 15 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
javascript将list转换成树状结构的实例
Sep 08 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
JS+CSS实现3D切割轮播图
Mar 21 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
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Ionic快速安装教程
2016/06/03 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python实现根据文件格式分类
2019/10/31 Python
Django框架反向解析操作详解
2019/11/28 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
小学安全工作总结2015
2015/05/18 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python