Merge pull request #42 from kPherox/fix-paste-image
Change the method to chack clipboardData type
This commit is contained in:
		@@ -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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user