1、解决ctrl + v 粘贴图片到富文本编辑器ueditor中无法显示(转Base64存储)

官方API文档

http://fex.baidu.com/ueditor/#start-start

基本使用

参考官网API文档使用即可,这里不讲如何基本使用

前置步骤使用

1、html页面定义一个容器
在这里插入图片描述
2、引入相关的js文件
在这里插入图片描述
3、初始化富文本编辑器
在这里插入图片描述

解决ctrl + v 粘贴图片到富文本编辑器中无法显示

背景:

由于目前的项目的实际情况是,使用ctrl + v 粘贴图片到富文本编辑器中(不上传到图片服务器中),因此,需要将图片转为Base64显示。
但由于ueditor因为安全的问题,屏蔽了图片的Base64显示。
目前的解决思路是:针对ueditor的dom对象,监听粘贴事件,将图片转为Base64,然后再删掉ueditor.js屏蔽图片base64显示的代码
以下代码可直接抄:
在初始化富文本编辑器下面新增事件(其实就是通过js实现ctrl + v 粘贴图片转Base64显示,只是现在的这个对象是富文本编辑器的document对象)

	/**
     * 当富文本编辑器加载成功后,针对它的dom对象,重写粘贴事件,只处理图片
     * 解决粘贴图片转为Base64显示
     * ue 是你初始化富文本编辑器的对象
     */
    this.editor.on('ready', function (e) {
        let that = this;
        // 重写复制
        $(this.document).on("paste", function (e) {
            var items = e.originalEvent.clipboardData.items;
            console.log("富文本复制 items", items);
            for (var i = 0; i < items.length; ++i) {
                var item = items[i];
                console.log("富文本复制 item", item);
                if (items.length < 2 && item.kind == 'file' && (item.type == 'image/png' || item.type == 'image/jpeg' || item.type == 'image/jpg')) {
                    var imgFile = item.getAsFile();
                    if (!imgFile) {
                        return true;
                    }
                    // 大小不能超过2m
                    if (imgFile.size > 2 * 1024 * 1024) {
                        vm.$message.error('图片大小为:' + (imgFile.size / 1024 / 1024).toFixed(2) + 'M,超过2M不能粘贴!');
                        return false;
                    }
                    var reader = new FileReader();
                    reader.readAsDataURL(imgFile);
                    reader.onload = function (e) {
                        // 显示文件
                        that.execCommand('inserthtml', '<img src="' + this.result + '" alt="" />');
                    }
                    return false;
                }
            }
        });
    });

找到ueditor.all.js 或者 ueditor.all.min.js,注释掉处理base64的代码
在这里插入图片描述
以上就搞定了,现在回到你的富文本编辑器中,即可粘贴图片

结果示例图

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值