在 iqdb 中使用 Ctrl + V 上传图片
当前为
// ==UserScript==
// @name iqdb Ctrl + V
// @name:en iqdb Ctrl + V
// @namespace http://tampermonkey.net/
// @version 0.1.3
// @description 在 iqdb 中使用 Ctrl + V 上传图片
// @description:en Upload image to iqdb by Ctrl + V
// @author apkipa
// @match https://*.iqdb.org/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function extractImageFilesFromClipboard(event) {
var clipboardData = event.clipboardData || window.clipboardData;
var files = clipboardData.files;
var a = new DataTransfer();
for (var i = 0; i < files.length; i++) {
if (files[i].type.indexOf("image") !== -1) {
a.items.add(files[i]);
}
}
if (a.files.length < 1) {
return null;
}
return a.files;
}
function createFilelistFromSingleFile(file) {
var a = new DataTransfer();
a.items.add(file);
return a.files;
}
function handlePaste(e) {
var files = extractImageFilesFromClipboard(e);
if (files !== null) {
e.stopPropagation();
e.preventDefault();
var fileInput = document.getElementById("file");
var formUpload = document.querySelectorAll("input[type=submit]")[0];
/* ? Not working here
fileInput.addEventListener("change", () => {
formUpload.form.submit();
});
*/
fileInput.files = createFilelistFromSingleFile(files[0]);
// Automatically submit the pasted image
// (If this is not desired behavior, comment the next line)
formUpload.form.submit();
}
else {
console.log("Not an image, paste event propagated");
}
}
window.addEventListener('paste', handlePaste);
})();