Extract img URL from a drag-and-dropped image from another website

- https://stackoverflow.com/a/19268449
This commit is contained in:
Oliver Walters 2019-05-06 22:34:38 +10:00
parent bb702367b6
commit 3c7238f29c
2 changed files with 39 additions and 4 deletions

View File

@ -106,10 +106,9 @@
var transfer = event.originalEvent.dataTransfer; var transfer = event.originalEvent.dataTransfer;
var files = transfer.files; if (isFileTransfer(transfer)) {
if (files.length > 0) { var file = transfer.files[0];
var file = files[0];
inventreeFileUpload( inventreeFileUpload(
"{% url 'part-image-upload' part.id %}", "{% url 'part-image-upload' part.id %}",
@ -124,6 +123,18 @@
} }
} }
); );
} else if (isOnlineTransfer(transfer)) {
getImageUrlFromTransfer(transfer);
/*
for (var i = 0; i < 12; i++) {
transfer.items[i].getAsString(function(text) {
console.log('item ' + i + ' - ' + text);
});
}
*/
} else {
console.log('Unknown transfer');
} }
}); });

View File

@ -36,3 +36,27 @@ function inventreeDocReady() {
modal.modal('show'); modal.modal('show');
}); });
} }
function isFileTransfer(transfer) {
/* Determine if a transfer (e.g. drag-and-drop) is a file transfer
*/
return transfer.files.length > 0;
}
function isOnlineTransfer(transfer) {
/* Determine if a drag-and-drop transfer is from another website.
* e.g. dragged from another browser window
*/
return transfer.items.length > 0;
}
function getImageUrlFromTransfer(transfer) {
/* Extract external image URL from a drag-and-dropped image
*/
console.log(transfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]);
}