前端知识框架 前端知识框架
首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档

BestIdea

首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档
  • JointJS入门
  • lottie动态图标以及超图中的使用
  • js实现前端pdf预览
  • js实现预览简版
  • 富文本实现图片粘贴
    • 富文本实现图片粘贴
  • 移动端表单组件点击延迟问题解决办法
  • 在线预览解决方案
  • antv-x6 入门
  • antv-g2入门
  • antv-g2Plot
  • antv-s2 入门
  • antv-l7Plot
  • avtv-f2入门
  • Vue实现pdf、doc、txt、xlsx等的预览
  • micro-app使用
  • VueUse使用
  • webpack打包替换类名命名空间
  • 插件
Btzh
2022-03-26
目录

富文本实现图片粘贴

# 富文本实现图片粘贴

# 场景

当前公司所用的 tinymce 富文本编辑器从本地粘贴来的图片地址为本地路径,从 word 文档粘贴的图片为base64均不符合业务需求.

# 解决方案

通过给富文本编辑器内文本框绑定粘贴监听事件获取 file 文件

# 实现方式

//在editor组件初始化配置setup中绑定粘贴监听事件
editor.on("paste", this.pasting);
1
2
    pasting (e) {
    //获取粘贴对象中的文本(支持本地多图片粘贴以及word中单张图片粘贴)
      let files = e.clipboardData.files
      if (files.length !== 0) {
        this.uploadFiles(files)
        return false  //取消图片默认粘贴事件
      }
    },
1
2
3
4
5
6
7
8
    uploadFiles (files) {
      for (let key in files) {
        // 目前设置只上传图片
        if (!(files[key].type && files[key].type.startsWith('image/'))) return
        var formData = new FormData();
        formData.append("file", files[key]);
        formData.append("path", 'icon');
        formData.append("bucketName", this.$store.getters.bucketName);
        this.$http.request({
          method: 'POST',
          url: this.fileServer,
          data: formData,
          headers: { 'Content-Type': 'multipart/form-data' }
        }).then((res) => {
          //通过editor.insertContent往富文本编辑器中加入图片标签
          this.onUploadSuccess(res.data)
        })
      }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上次更新: 2022/05/05, 17:47:41
js实现预览简版
移动端表单组件点击延迟问题解决办法

← js实现预览简版 移动端表单组件点击延迟问题解决办法→

最近更新
01
webpack打包替换类名命名空间
05-01
02
Vite常用配置
02-26
03
crypto前端加密
01-18
更多文章>
Theme by Vdoing | Copyright © 2022-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式