【前端效率工(gong)具(ju)】:告別右鍵(jian)另(ling)存,不到 50 行代碼(ma)一鍵(jian)批量下(xia)載(zai)網頁(ye)圖片
????? 寫在開頭
點(dian)贊 + 收藏 === 學(xue)會??????
先看效果:在素材網站一鍵批量保存所有圖片

廢話不多說,直接上手!
項目結構
image-downloader-extension ├── manifest.json # 擴展的"身份證" └── background.js # 插件后臺腳本
-
創建文件夾
image-downloader-extension -
創建manifest.json文件
這(zhe)個文(wen)件是插(cha)件的身份證(zheng),告訴瀏(liu)覽器(qi)你的插(cha)件是誰、能(neng)干啥(sha)。
{
"manifest_version": 3,
"name": "我的下載插件",
"version": "1.0.0",
"permissions": ["contextMenus", "downloads", "scripting"],
"host_permissions": ["<all_urls>"],
"background": {
"service_worker": "background.js"
}
}
關鍵點解讀:

-
創建background.js文件
background.js后臺腳(jiao)本負責創建并響應(ying)右鍵菜單等事(shi)件(jian)來下載(zai)頁面圖(tu)片
// 1. 插件安裝時創建右鍵菜單
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: 'downloadAllImages', // 菜單唯一標識
title: '我要下載所有圖片', // 菜單顯示的文字
contexts: ['page'], // 在頁面任意位置右鍵時顯示
});
});
// 2. 監聽右鍵菜單點擊事件
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === 'downloadAllImages') {
// 使用 scripting API 在當前頁面執行腳本獲取所有圖片
chrome.scripting.executeScript(
{
target: { tabId: tab.id },
func: getImagesFromPage,
},
(results) => {
// 獲取執行結果
if (!results || !results[0]?.result || results[0].result.length === 0) {
console.log('未找到圖片');
return;
}
const images = results[0].result;
// 批量下載圖片
images.forEach((url, index) => {
setTimeout(() => {
chrome.downloads.download({
url: url,
filename: `images/image_${index + 1}.jpg`, // 保存路徑
saveAs: false, // 不彈出保存對話框
});
}, index * 500); // 每張圖片間隔 500ms,避免瀏覽器限制
});
}
);
}
});
// 在頁面中執行的函數,用于獲取所有圖片URL
function getImagesFromPage() {
const images = Array.from(document.images)
.map((img) => img.src)
.filter((src) => src.startsWith('http'));
return images;
}
API 文檔速查
4. 加載插件到瀏覽器
接下來我們將插(cha)件(jian)加載(zai)到瀏覽器(qi)中

步驟:
4.1 打開擴展管理頁面 在 Chrome 地址欄輸入 chrome://extensions/ 并回車
4.2 開啟開發者模式
4.3 點擊 “加載未打包的擴展程序”
選擇剛剛創建的image-downloader-extension文件夾進行加載
4.4 插件加載成功
你會看到插件出現在列表中

至(zhi)此,我們的下載插件就搞完了,是(shi)不(bu)是(shi)非常(chang)容易?
測試(驗證功能)
接下來我們隨便(bian)打開一個(ge)(ge)網(wang)站(zhan),點擊鼠標右(you)鍵(jian),就會發現(xian)右(you)鍵(jian)菜單多了一個(ge)(ge)選項

點擊“我要下(xia)載所有圖片” 即可實現我們的需(xu)求了
調試(查看 background.js日志與斷點)
如下圖(tu):點擊(ji)插件的 Service Worker 入口,會(hui)彈(dan)出調試面板。
在該面板中你可以:
- 實時查看 background.js 的 console日志輸出;
- 在代碼中設置斷點調試以排查問題。

如果對您有所幫助,歡迎您點個關注,我會定時更新技術文檔,大家一起討論學習,一起進步。

