Fix paste image when image copied from web browser
This commit is contained in:
parent
7556e5560d
commit
100bd648a9
|
@ -183,22 +183,20 @@ function toBlob(base64, type) {
|
||||||
var element = document.querySelector("#textarea");
|
var element = document.querySelector("#textarea");
|
||||||
element.addEventListener("paste", function(e){
|
element.addEventListener("paste", function(e){
|
||||||
console.log(e)
|
console.log(e)
|
||||||
// 画像の場合
|
if (!e.clipboardData || !e.clipboardData.items) {
|
||||||
// e.clipboardData.types.length == 0
|
return true;
|
||||||
// かつ
|
}
|
||||||
// e.clipboardData.types[0] == "Files"
|
// DataTransferItemList に画像が含まれいない場合は終了する
|
||||||
// となっているので、それ以外を弾く
|
var imageItems = [...e.clipboardData.items].filter(i => i.type.startsWith('image'));
|
||||||
if (!e.clipboardData
|
if (imageItems.length == 0) {
|
||||||
|| !e.clipboardData.types
|
|
||||||
|| (e.clipboardData.types.length != 1)
|
|
||||||
|| (e.clipboardData.types[0] != "Files")) {
|
|
||||||
console.log("not image")
|
console.log("not image")
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ファイルとして得る
|
// ファイルとして得る
|
||||||
// (なぜかgetAsStringでは上手くいかなかった)
|
// DataTransferItem の kind は file なので getAsString ではなく getAsFile を呼ぶ
|
||||||
var imageFile = e.clipboardData.items[0].getAsFile();
|
var imageFile = imageItems[0].getAsFile();
|
||||||
|
var imageType = imageItems[0].type;
|
||||||
|
|
||||||
// FileReaderで読み込む
|
// FileReaderで読み込む
|
||||||
var fr = new FileReader();
|
var fr = new FileReader();
|
||||||
|
@ -209,7 +207,8 @@ element.addEventListener("paste", function(e){
|
||||||
if(mediav){
|
if(mediav){
|
||||||
var i=mediav.split(",").length;
|
var i=mediav.split(",").length;
|
||||||
}
|
}
|
||||||
media(base64, "image/png", i)
|
// DataTransferItem の type に mime tipes があるのでそれを使う
|
||||||
|
media(base64, imageType, i)
|
||||||
};
|
};
|
||||||
fr.readAsDataURL(imageFile);
|
fr.readAsDataURL(imageFile);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user