【tinymce-vue】tinymce-vue自定义图片上传插件,且在插件中调用vue组件

最近工作项目需要基于tinymce-vue进行插件开发,需要自己写一个插入图片/视频/链接的插件,虽然说tinymce自带就有这些插件,但是这些插件的UI界面长得不是很美观,所以大佬说要自定义tinymce的这些插件。现在就基于tinymce-vue自定义图片上传的插件,来记录一下吧。
先讲一个这个关于图片上传的需求:

  1. 在点击菜单栏的插入图片,要弹出一个我们自定义的vue组件
  2. 点击图片上传后要将图片插入到编辑框里与封面图中
  3. 插入的图片,不管是在编辑框里还是在封面图里,图片的右下角要带着一个裁剪的按钮,让用户可以对图片进行裁剪
    以下是我自己画的一张图

在这里插入图片描述
这里就简单地记录一下吧,然后写一个超简的demo,demo仅记录自定义图片上传插件,且在插件中调用vue组件,并将上传的图片插入到编辑框,就是一个超简单的模板。其他的像上传后再把图片插入后封面图跟图片编辑按钮就不做记录,需要自己拓展

如何引入tinymce-vue插件与汉化插件就不讲了。(demo地址

先在node_modules的tinymce文件夹下的plugins,下创建自定义的插件文件夹例如uploadImg,然后在该文件夹下创建index.js、plugin.js(最好将plugins文件夹移到node_modules外的其他目录,不然每次npm install 插件就都没了,每次都要给插件作备份)

import 'tinymce/plugins/uploadImg';  //这里需要将插件引入
//  然后再init中使用该插件
 plugins: ' uploadImg', // 插件
 toolbar: 'undo redo | uploadImg ', // 顶部排版

自定义插件(就是上面创建的plugin.js)
一开始是想怎么在外部给这个插件传参,但是发现好像不太可行,然后就改成直接在插件里创建组件了。
在插件中调用一个vue的插件,是通过Vue的render函数来做渲染的,一开始是用extend来创建组件,但是效果不好就给换成render了,然后通过组件里抛出的事件来做组件响应,从而来控制我们动态组件。

import Vue from 'vue'
import TinymceUpload from '@/components/Tinymce/TinymceUpload'  // 引入自己的自定义插件
(function () {
   
  'use strict';

  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
  var register = function 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值