粗暴将tinymce富文本编辑器整合到vue项目

之前我使用的tinymce富文本编辑器,版本时4版本的,一些新的功能使用不上,现在想把5版本的tinymce整合进项目,之前tinymce是通过cdn的形式引入的,不会占用项目体积,

但是又想使用tinymce的新功能,比如加入第三方插件什么的,地图插件,设置行高,多图片上传等,都是很吸引人的功能,于是打算先不顾文件体积,将tinymce整个文件拷贝到项目里,这样方便插入第三方插件,

中文官网:http://tinymce.ax-z.cn/configure/integration-and-setup.php

首先,tinymce最新版本下载地址:https://www.tiny.cloud/get-tiny/self-hosted/    找到最新版本,现在是5.15版本,下载生产环境pro

然后解压得到以下文件:tinymce

放到vue的public目录下

在index.html页面引入

<!-- 5.1.5 -->
    <script src="./tinymce/tinymce.min.js"></script>

然后在项目中

初始化配置:

initTinymce() {
      const _this = this
      window.tinymce.init({
        selector: `#${this.tinymceId}`,
        base_url: ‘/tinymce‘,//指定插件及皮肤所在的文件路径
        inline: false,//是否开启内敛模式,不开启就是iframe模式
        // language: this.languageTypeList[‘zh‘],
        language:‘zh_CN‘,
        language_url: ‘/tinymce/langs/zh_CN.js‘,
        fontsize_formats: ‘12px 14px 16px 18px 24px 36px 48px 56px 72px‘,
        height: this.height,
        body_class: ‘panel-body ‘,
        object_resizing: false,
        toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
        menubar: this.menubar,
        plugins: plugins,
        end_container_on_empty_block: true,
        powerpaste_word_import: ‘clean‘,
        code_dialog_height: 450,
        code_dialog_width: 1000,
        // advlist_bullet_styles: ‘square‘,
        // advlist_number_styles: ‘default‘,
        imagetools_cors_hosts: [‘www.tinymce.com‘, ‘codepen.io‘],
        default_link_target: ‘_blank‘,
        link_title: false,
        nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
        init_instance_callback: editor => {
          if (_this.value) {
            editor.setContent(_this.value)
          }
          _this.hasInit = true
          editor.on(‘NodeChange Change KeyUp SetContent‘, () => {
            this.hasChange = true
            this.$emit(‘input‘, editor.getContent())
          })
        },

需要加上语言包,中文官网可以下载,之后将zh_CN.js放在tinymce下的langs文件夹下,没有此文件夹可以创建一个,然后按照上面的语言配置即可,指定语言、指定语言包路径,当然,我们本地引用tinymce时,需要指定插件皮肤等文件所在的位置:

base_url: ‘/tinymce‘,//指定插件及皮肤所在的文件路径

然后加入第三方插件时,就从中文官网上下载对应的插件文件,解压好之后,放在plugins文件下,然后配置plugins和toolbar即可,很简单

另外集成七牛上传图片的一段代码,大家可以看看,

images_upload_handler(blobInfo, success, failure, progress) {
          // progress(0);
          console.log("开始上传图片")
          console.log(blobInfo.blob());//将blobinfo变成易于理解的file对象
          tools.updateOfflineImg(blobInfo.blob(),_this.token).then(url=>{
            console.log(url)
            success(url);
          }).catch(err=>{
            failure(err);
          })
        },

七牛上传需要自己封装好方便的方法,大家自己可以封装,这里就不多说了。

另外提醒一下,中文官网也有vue集成tinymce的方法,可以去使用,不过我是按照自己之前使用的集成方法,感觉不用改太多的代码,所以就没有按照中文官网上集成的方法使用。

上诉术方法集成后,打包体积国让增大到吓人的底部,整整增加了6M那个样子,有点吓人,不过如果用不了三方插件,比如多图上传,地图,设置行高等等时,我们完全可以用cdn的形式引入,这样就会凭空减少6M的体积,我觉的牺牲点功能还是比较好的,项目体积大真让人受不了。希望tinymce早日把地图和多图上传集成吧,这样就可以随意用cdn引入了。

原文地址:https://www.cnblogs.com/fqh123/p/12181946.html

时间: 2024-10-10 08:24:37

粗暴将tinymce富文本编辑器整合到vue项目的相关文章

vue中引入Tinymce富文本编辑器

最近想在项目上引入一个富文本编辑器,之前引入过summernote,感觉并不太适合vue使用, 然后在网上查了查,vue中使用Tinymce比较适合, 首先,我们在vue项目的components文件夹中加入如下几个文件 首先看一下Tinymce/dynamicLoadScript.js的内容: let callbacks = [] function loadedTinymce() { // to fixed https://github.com/PanJiaChen/vue-element-a

在 Vue 项目中引入 tinymce 富文本编辑器

项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery... kindEditor:功能强大,代码简洁,需要配置后台,而且好久没见更新了 wangEditor:轻量.

tinymce 富文本编辑器 编写资料

tinymce官方文档: 粘贴图片插件 博客搬运地址 使用Blob获取图片并二进制显示实例页面 tinymce自动调整插件 是时候掌握一个富文本编辑器了——TinyMCE(1) XMLHttpRequest 2.0的家臣们 URL.createObjectURL和URL.revokeObjectURL 如何使用 blob:http:// 隐藏一个mp3文件的真实地址? https://www.z-u-i-d-a-i-m-a.com/question/3913274460982272.htm 使用

在vue中使用tinymce富文本编辑器,解决tinymce在dialog对话框中层级太低的问题

1.安装 npm install tinymce -S 2.把node_modules\tinymce里面的文件 包括tinymce文件夹 全部复制到static文件夹下面,如下图 3.tinymce默认是英文界面,还需要下载一个中文语言包zh_CN.js https://www.tiny.cloud/get-tiny/language-packages/ 在tinymce文件夹下新建langs文件夹,将下载好的语言包放到langs文件夹下面如图  4.在main.js中引入tinymce  5

Django框架中tinymce富文本编辑器的使用

1. 安装富文本模块 pip install tinymce 2. Django项目中注册添加配置. Setting文件中应用注册 'tinymce', 添加tinymce的基本设置.(高级-长600-宽-400) TINYMCE_DEFAULT_CONFIG = { 'theme': 'advanced', 'width': 600, 'height': 400, }  3. urls配置 添加tinymce配置 url(r'^tinymce/', include('tinymce.urls'

django富文本编辑器

-------------------tinymce富文本编辑器1.下载安装 1.在网站pypi网站搜索并下载"django-tinymce-2.4.0" 2.解压:tar zxvf django-tinymce-2.4.0.tar.gz 3.进入解压后的目录,工作在虚拟环境,安装: python setup.py install 2.应用到项目 1.在settings.py中为INSTALLED_APPS添加编辑器应用 INSTALLED_APPS = ( ... 'tinymce'

WEB项目中使用UEditor(富文本编辑器)

Ueditor富文本编辑器是在很多项目里经常用到的框架,是百度开发团队开发的一款很好用的富文本编辑器 下面就是我在一个系统里用到的,有了富文本编辑器,管理员使用起来不是很方便? 所以本博客介绍这个富文本编辑器的使用哈!觉得写得不错的请点赞哈,有建议欢迎提哈!^V^ 下载链接:http://ueditor.baidu.com/website/download.html 具体的使用请看官网:http://ueditor.baidu.com/website/index.html 下载富文本编辑器后,我

TinyMCE(富文本编辑器)

[转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 官网演示以及示例代码:https://www.tinymce.com/docs/demo/image-tools/ 转自:http://www.cnblogs.com/hahacjh/archive/2010/07/24/1784268.html TinyMCE 在Asp.Net中的使用方法其实挺简单的,从官方网站下载TinyMCE),然后将里面的jscripts目录拷到你的网站目录 假设你的aspx页面中某一个地方需要用到编辑器

【转】TinyMCE(富文本编辑器)

效果预览:http://www.tinymce.com/tryit/full.php [转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 转自:http://www.cnblogs.com/hahacjh/archive/2010/07/24/1784268.html TinyMCE 在Asp.Net中的使用方法其实挺简单的,从官方网站下载TinyMCE),然后将里面的jscripts目录拷到你的网站目录 假设你的aspx页面中某一个地方需要用到编辑器,则加入 <asp:TextB