vue2.0 实现富文本编辑器功能


Posted in Javascript onMay 26, 2019

前端富文本编译器使用总结:

UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲

bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery...

kindEditor:功能强大,代码简洁,需要配置后台,而且好久没见更新了

wangEditor:轻量、简洁、易用,但是升级到 3.x 之后,不便于定制化开发。不过作者很勤奋,广义上和我是一家人,打个call

quill:本身功能不多,不过可以自行扩展,api 也很好懂,如果能看懂英文的话...

summernote:没深入研究,UI挺漂亮,也是一款小而美的编辑器,可是我需要大的

在这里着重说一下这个 tinymce这个插件,

优势有三:

1. GitHub 上星星很多,功能也齐全;

2. 唯一一个从 word 粘贴过来还能保持绝大部分格式的编辑器;

3. 不需要找后端人员扫码改接口,前后端分离;

上代码(vue中使用)

1.引入

npm install @tinymce/tinymce-vue -S

2.在 node_modules 中找到 tinymce/skins 目录,然后将 skins 目录拷贝到 static 目录下

// 如果是使用 vue-cli 3.x 构建的 typescript 项目,就放到 public 目录下,文中所有 static 目录相关都这样处理

3.给你们个语言包(https://www.tiny.cloud/download/language-packages/)地址都给了要是还不会那就没救了

4.然后将这个语言包放到 static 目录下,为了结构清晰,我包了一层 tinymce 目录

5.import

import tinymce from 'tinymce/tinymce'
import 'tinymce/themes/modern/theme'
import Editor from '@tinymce/tinymce-vue'

tinymce-vue 是一个组件,需要在 components 中注册,然后直接使用

<editor id="tinymce" v-model="tinymceHTML" :init="tinymceInit"></editor>

这里的 init 是 tinymce 初始化配置项,后面会讲到一些关键的 api,完整 api 可以参考https://www.tiny.cloud/docs/configure/

编辑器需要一个 skin 才能正常工作,所以要设置一个 skin_url 指向之前复制出来的 skin 文件

data () {
  return {
    tinymceHtml: '请输入内容',
    init: {
     language_url: '/static/tinymce/zh_CN.js',
     language: 'zh_CN',
     skin_url: '/static/tinymce/skins/lightgray',
     height: 300,
     plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu',
     toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat',
     branding: false
    }
  }
 },

6.同时在 mounted 中也需要初始化一次:

mounted(){
tinymce.init({}) // 特别注意这个空对象的存在,如果这个初始化空对象不存在依旧会报错
}

完整代码如下:

<template>
 <div class='tinymce'>
  <h1>tinymce</h1>
<!-- 富文本编辑组件 -->
  <editor id='tinymce' v-model='tinymceHtml' :init='init'></editor>
  <div v-html='tinymceHtml'></div>
 </div>
</template>

<script>
 import tinymce from 'tinymce/tinymce'
 import 'tinymce/themes/modern/theme'
 import Editor from '@tinymce/tinymce-vue'
 import 'tinymce/plugins/image'
 import 'tinymce/plugins/link'
 import 'tinymce/plugins/code'
 import 'tinymce/plugins/table'
 import 'tinymce/plugins/lists'
 import 'tinymce/plugins/contextmenu'
 import 'tinymce/plugins/wordcount'
 import 'tinymce/plugins/colorpicker'
 import 'tinymce/plugins/textcolor'
 export default {
  name: 'tinymce',
  data () {
   return {
    tinymceHtml: '请输入内容',
    init: {
     language_url: '/static/tinymce/zh_CN.js',
     language: 'zh_CN',
     skin_url: '/static/tinymce/skins/lightgray',
     height: 300,
     plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu',
     toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat',
     branding: false
    }
   }
  },
  mounted () {
   tinymce.init({})
  },
  components: {Editor}
 }
</script>

其中的带plugins为扩展性操作,如果不需要,可以不引入。

效果如下图:

vue2.0 实现富文本编辑器功能

总结

以上所述是小编给大家介绍的vue2.0 实现富文本编辑器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Raphael带文本标签可拖动的图形实现代码
Feb 20 Javascript
js如何判断不同系统的浏览器类型
Oct 28 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
JavaScript中判断函数、变量是否存在
Jun 10 Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
详解Vue.js入门环境搭建
Mar 17 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
JavaScript简单实现关键字文本搜索高亮显示功能示例
Jul 25 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
富文本编辑器vue2-editor实现全屏功能
May 26 #Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 #Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 #Javascript
vue指令做滚动加载和监听等
May 26 #Javascript
vxe-table vue table 表格组件功能
May 26 #Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 #Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 #Javascript
You might like
PHP实现服务器状态监控的方法
2014/12/09 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
深入分析PHP设计模式
2020/06/15 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
JS重要知识点小结
2011/11/06 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
js实现轮播图特效
2020/05/28 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
RealTek面试题
2016/06/28 面试题
中海讯通笔试题
2015/09/15 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
优秀实习生感言
2014/03/01 职场文书
物业保安员岗位职责
2014/03/14 职场文书
说明书范文
2014/05/07 职场文书
校车安全责任书
2014/08/25 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书