これは何
画像をDLしたいですよね。特に大量に、DLしたいとき、面倒ですね。
この拡張を入れると、Shift + クリック を画像上で行うだけで、画像がDLされます。
これで大量の画像DLも一瞬です。
次に新たに読み込みが行われるまで、同じランダムのprefixをつけて、連番でDLしますので、とっらかることもありません。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "manifest_version": 3, "name": "Image Downloader", "version": "1.0", "permissions": ["downloads"], "host_permissions": ["<all_urls>"], "background": { "service_worker": "background.js" }, "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
let prefix = generateRandomString(4); // ランダムな4桁のアルファベット let counter = 1; // 連番の初期値 function generateRandomString(length) { const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; let result = ""; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * characters.length)); } return result; } chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.action === "downloadImage") { const filename = `${prefix}_${String(counter).padStart(3, "0")}.jpg`; // 名前例: ABCD_001.jpg counter++; chrome.downloads.download({ url: message.imageUrl, filename: filename, conflictAction: "uniquify" }); } }); |
1 2 3 4 5 6 7 8 9 |
document.addEventListener("click", (event) => { if (event.shiftKey && event.target.tagName === "IMG") { const imageUrl = event.target.src; chrome.runtime.sendMessage({ action: "downloadImage", imageUrl: imageUrl }); } }); |