1. 程式人生 > >KindEditor4.1.10,支持粘貼圖片

KindEditor4.1.10,支持粘貼圖片

abs req bug ESS ada exec res else target

轉載自https://blog.csdn.net/jimmy0021/article/details/73251406

我已經忘記我是不是從這個博主的那裏找到的解決kindeditor粘貼圖片的方法了,因為上次處理這個問題已經快半年了.以下是正文

KindEditor4.1.10,使得他能夠在Chrome和IE11中直接粘貼復制的圖片(比如通過截圖工具把圖片直接保存在剪切板中),然後調用上傳URL上傳圖片

方法,修改kindeditor.js中的代碼:

在5825行附近大概是下面這個樣子的:

1 K(doc.body).bind(‘paste‘, function (e) {  
2     if (self.pasteType === 0) {  
3 e.stop(); 4 return; 5 }

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

  1 //處理IE11,Chrome粘貼圖片上傳  
  2 function dopasteImg() {  
  3     //debugger;  
  4     var file = null;  
  5     if (window.clipboardData) {//ie  
  6   
  7         if (clipboardData.files && clipboardData.files.length)//IE11  
  8
file = clipboardData.files[0]; 9 else if (!clipboardData.getData("text") && !clipboardData.getData("url")) { 10 alert("不能粘貼文件或圖片,請使用IE11或者Chrome瀏覽器,或使用上傳功能"); 11 return true; 12 } 13 } else { 14 if (e.event.clipboardData.items)//
chrome 15 for (var i = 0; i < e.event.clipboardData.items.length; i++) { 16 if (e.event.clipboardData.items[i].kind === "file") { 17 file = e.event.clipboardData.items[i]; 18 break; 19 } 20 } 21 if (file == null) { 22 23 if (!e.event.clipboardData.getData("url") && !e.event.clipboardData.getData("text")) { 24 alert("不能粘貼文件或圖片,請使用IE11或者Chrome瀏覽器,或使用上傳功能"); 25 return true; 26 } 27 } 28 } 29 if (file) { 30 if (!K.undef(self.allowImageUpload, true)) { 31 alert("編輯器禁止上傳圖片,請與有關人員聯系!"); 32 return true; 33 } 34 //獲取File Blob 35 //debugger; 36 var blb; 37 if (file.getAsFile) {//Chrome 38 blb = file.getAsFile(); 39 if (blb.size === 0) { 40 alert("不能獲取剪切板中的" + (file.type.indexOf("image/") === 0 ? "圖像" : "文件") 41 +"\n如果是從OutLook中復制的,請換其他程序,如Word"); 42 return true; 43 } 44 sendfile(blb, file.type); 45 } else { 46 var fr = new FileReader(); 47 if (fr.readAsArrayBuffer) {//ie 48 49 50 fr.onloadend = function (evt) { 51 blb = evt.target.result; 52 sendfile(blb, file.type); 53 } 54 55 fr.readAsArrayBuffer(file); 56 } 57 } 58 function sendfile(b, t) { 59 60 var xhr = new XMLHttpRequest(); 61 var formData = new FormData(); 62 var isImg = t.indexOf("image/") === 0; 63 //formData.append(‘imgFile‘, file,"untitled." + t.split(‘/‘)[1]); 64 //formData.append(‘imgFile‘, b); 65 var myBlob = new Blob([b], { "type": t }); 66 formData.append(‘imgFile‘, myBlob, "untitled." + t.split(‘/‘)[1]); 67 //formData.append(‘imgFile‘, b); 68 formData.append(‘dir‘, isImg ? ‘image‘ : ‘file‘); 69 xhr.open(‘POST‘, self.uploadJson); 70 xhr.onreadystatechange = function () { 71 if (xhr.readyState == 4&&xhr.status == 200) { 72 // if (fn) { 73 var data = _trim(xhr.responseText); 74 //if (dataType == ‘json‘) { 75 data = _json(data); 76 if (data.error) { 77 if (typeof ($) !== "undefined" && $.messager && $.messager.alert) { 78 $.messager.alert(‘Error‘, data.message, ‘warning‘); 79 80 } else { 81 alert(data.message); 82 } 83 } else { 84 //self.exec(‘insertimage‘, url, title, width, height, border, align); 85 if(K.undef(self.formatUploadUrl, true)) 86 data.url =K.formatUrl(data.url, ‘absolute‘); 87 self.exec(‘insertimage‘, data.url, "from clipboard", undefined, undefined, undefined, undefined); 88 } 89 //} 90 // fn(data); 91 // } 92 } 93 } 94 xhr.send(formData); 95 } 96 return true; 97 } 98 } 99 //debugger; 100 if (dopasteImg()) 101 e.stop(); 102 //
處理粘貼結束5825

親測chrome有效

KindEditor4.1.10,支持粘貼圖片