js 的 paste 事件 粘贴图片的时候会让程序崩溃,文本的时候正常
DarkDuke, 2021-03-25T23:31:42+08:00
window.addEventListener("paste", function (e){
return
if ( !(e.clipboardData && e.clipboardData.items) ) {
return;
}
return
let items = e.clipboardData.items;
//获取文件的属性就在这里获取,打印该对象可以看到相关属性,结果的操作就在items里面,所以需要循环items
for (var i = 0; i < items.length; i++) {
// console.log(items[i]);
if (items[i].type.indexOf("image") !== -1) {
//getAsFile() 此方法只是该浏览器下才会有的方法
let fileObj = items[i].getAsFile();
if(fileObj !== null) {
let reader = new FileReader();
reader.onload = function (event) {
//event.target.result 即为图片的Base64编码字符串
let base64_str = event.target.result;
let fileUrl=URL.createObjectURL(fileObj);
let img="<img src='"+base64_str+"'/>";
editor.txt.append(img)
}
reader.readAsDataURL(fileObj);
}
}
}
});
DarkDuke, created: 2021-03-25T23:34:10+08:00
paste
事件中
在
if(e.clipboardData && e.clipboardData.items)
之前 return 就不会崩,只要 执行了这个判断就会崩
DarkDuke, created: 2021-03-25T23:40:01+08:00
aochulai, created: 2021-04-04T12:43:26+08:00
这是浏览器引擎的问题,恐怕你需要自己hook掉clipboardData