kindeditor4.1截图直接粘贴到编辑器使用

发布期:2021-02-07 | 来源处:本站 | 编辑者:站长助手 | 浏览量:0
07
02
2021

以下是正文KindEditor4.1.10,使得他能够在Chrome和IE11中直接粘贴复制的图片(比如通过截图工具把图片直接保存在剪切板中),然后调用上传URL上传图片方法。

修改kindeditor.js中的代码

约在5941行附近,大概是下面这个样子的:


K(doc.body).bind('paste', function (e) {  
     if (self.pasteType === 0) {  
        e.stop();  
        return;  
   }



在第1行和第2行之间插入:



//处理IE11,Chrome粘贴图片上传
function dopasteImg() {
    //debugger;
    var file = null;
    if (window.clipboardData) {//ie

        if (clipboardData.files && clipboardData.files.length)//IE11
            file = clipboardData.files[0];
        else if (!clipboardData.getData("text") && !clipboardData.getData("url")) {
            alert("不能粘贴文件或图片,请使用IE11或者Chrome浏览器,或使用上传功能");
            return true;
        }
    } else {
        if (e.event.clipboardData.items)//chrome
        for (var i = 0; i < e.event.clipboardData.items.length; i++) {
            if (e.event.clipboardData.items[i].kind === "file") {
                file = e.event.clipboardData.items[i];
                break;
            }
        }
        if (file == null) {

            if (!e.event.clipboardData.getData("url") && !e.event.clipboardData.getData("text")) {
                alert("不能粘贴文件或图片,请使用IE11或者Chrome浏览器,或使用上传功能");
                return true;
            }
        }
    }
    if (file) {
        if (!K.undef(self.allowImageUpload, true)) {
            alert("编辑器禁止上传图片,请与有关人员联系!");
            return true;
        }
        //获取File Blob
        //debugger;
        var blb;
        if (file.getAsFile) {//Chrome
            blb = file.getAsFile();
            if (blb.size === 0) {
                alert("不能获取剪切板中的" + (file.type.indexOf("image/") === 0 ? "图像" : "文件")
                          +"
如果是从OutLook中复制的,请换其他程序,如Word");
                return true;
            }
            sendfile(blb, file.type);
        } else {
            var fr = new FileReader();
            if (fr.readAsArrayBuffer) {//ie


                fr.onloadend = function (evt) {
                    blb = evt.target.result;
                    sendfile(blb, file.type);
                }

                fr.readAsArrayBuffer(file);
            }
        }
        function sendfile(b, t) {

            var xhr = new XMLHttpRequest();
            var formData = new FormData();
            var isImg = t.indexOf("image/") === 0;
            //formData.append('imgFile', file,"untitled." + t.split('/')[1]);
            //formData.append('imgFile', b);
            var myBlob = new Blob([b], { "type": t });
            formData.append('imgFile', myBlob, "untitled." + t.split('/')[1]);
            //formData.append('imgFile', b);
            formData.append('dir', isImg ? 'image' : 'file');
            xhr.open('POST', self.uploadJson);
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4&&xhr.status == 200) {
                    // if (fn) {
                    var data = _trim(xhr.responseText);
                    //if (dataType == 'json') {
                    data = _json(data);
                    if (data.error) {
                        if (typeof ($) !== "undefined" && $.messager && $.messager.alert) {
                            $.messager.alert('Error', data.message, 'warning');

                        } else {
                            alert(data.message);
                        }
                    } else {
                        //self.exec('insertimage', url, title, width, height, border, align);
                        if(K.undef(self.formatUploadUrl, true))
                            data.url =K.formatUrl(data.url, 'absolute');
                        self.exec('insertimage', data.url, "from clipboard", undefined, undefined, undefined, undefined);
                    }
                    //}
                    // fn(data);
                    // }
                }
            }
            xhr.send(formData);
        }
        return true;
    }
}
//debugger;
if (dopasteImg())
    e.stop();
      //处理粘贴结束5825


亲测有效,希望对你有帮助。





TAG 标签:

网站优化专区

本月热点资讯
热线(微信同号):
137-6042-7131
在线客服:
售前
售前
售前
售后
微信图标
联系微信:
微信联系二维码
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得全宝鑫公司策划专家免费为您设计
创意LOGO,免费设计您满意的名片。
下单送礼感恩多年,新老用户下单即送创业型空间+域名等大礼
8:30-18:00小时免费咨询热线137-6042-7131
建站留言合作意向表

您需要的服务

您关注的地方

您大概的预算

直接咨询