当前位置: 首页 > news >正文

【前端效率工具】:告别右键另存,不到 50 行代码一键批量下载网页图片

🧑‍💻 写在开头

点赞 + 收藏 === 学会🤣🤣🤣

 

先看效果:在素材网站一键批量保存所有图片

企业微信截图_20251027165054

废话不多说,直接上手!

项目结构

image-downloader-extension
├── manifest.json      # 扩展的"身份证"
└── background.js      # 插件后台脚本
  1. 创建文件夹 image-downloader-extension

  2. 创建manifest.json文件

这个文件是插件的身份证,告诉浏览器你的插件是谁、能干啥。

{"manifest_version": 3,"name": "我的下载插件","version": "1.0.0","permissions": ["contextMenus", "downloads", "scripting"],"host_permissions": ["<all_urls>"],"background": {"service_worker": "background.js"}
}

关键点解读:

企业微信截图_20251027170154

 

  1. 创建background.js文件

background.js后台脚本负责创建并响应右键菜单等事件来下载页面图片

// 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 文档速查

  • chrome.runtime(扩展生命周期/事件)

  • chrome.contextMenus(右键菜单)

  • chrome.scripting(脚本执行)

  • chrome.downloads(下载管理)

  • 权限声明(MV3)

4. 加载插件到浏览器

接下来我们将插件加载到浏览器中

 

93948d7109204fdab10270ae2c0dfe78~tplv-73owjymdk6-jj-mark-v1_0_0_0_0_5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5LiN5LiA5qC355qE5bCR5bm0Xw==_q75

步骤:
4.1 打开扩展管理页面 在 Chrome 地址栏输入 chrome://extensions/ 并回车
4.2 开启开发者模式
4.3 点击 “加载未打包的扩展程序”

选择刚刚创建的image-downloader-extension文件夹进行加载

4.4 插件加载成功

你会看到插件出现在列表中

企业微信截图_20251027165120

至此,我们的下载插件就搞完了,是不是非常容易?

测试(验证功能)

接下来我们随便打开一个网站,点击鼠标右键,就会发现右键菜单多了一个选项

企业微信截图_20251027165126

点击“我要下载所有图片” 即可实现我们的需求了

调试(查看 background.js日志与断点)

如下图:点击插件的 Service Worker 入口,会弹出调试面板。

在该面板中你可以:

  • 实时查看 background.js 的 console日志输出;
  • 在代码中设置断点调试以排查问题。

d923a7711c2c4238b67c3582006acc7c~tplv-73owjymdk6-jj-mark-v1_0_0_0_0_5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5LiN5LiA5qC355qE5bCR5bm0Xw==_q75

 

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

http://www.hn-smt.com/news/251/

相关文章:

  • 渐进过程中大O与小o混用
  • 消息队列的有序性
  • 【LTDC】DMA2D —— 嵌入式系统的 GPU
  • unity管理器设计:Manager of Managers
  • iview table 排序 columns 里面写 sortable: custom 不要写 sortable: true 不然会进行二次内部排序序号等 字段。
  • 本地运行nginx服务,模拟线上环境访问项目
  • git提交远程项目步骤
  • 2025 年搅拌器搅拌设备,侧入式搅拌设备,斜插式揽拌设备,卧式搅拌设备厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读
  • 2025 年环保搅拌设备,搅拌装置设备,框式搅拌设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • CorelDRAW的shell扩展ShellXP.dll导致资源管理器explorer.exe卡死/冻结/无响应/挂起
  • 2025 年定制矿车,大型矿车,固定式矿车厂家最新推荐,产能、专利、环保三维数据透视
  • 醒图电脑版下载与安装教程(2025最新版)
  • 2025 年江苏电缆附件,热缩电缆附件,冷缩电缆附件,预制电缆附件厂家最新推荐,产能、专利、环保三维数据透视
  • Android Studio 使用glibc2.28的版本
  • 2025年10月兰花油品牌推荐榜:五款精华油深度对比与选购指南
  • 2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤功效
  • 2025 年进口螺杆泵,萨伯特螺杆泵,污泥螺杆泵厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 为什么 AI 模型的最小理解单位是「特征」?
  • 2025年移动车载变电站厂家最新推荐榜:陕西四方华能凭硬实力成优选
  • XiaoQuQu 的 2025 CSP-S 第二轮模拟 ROUND2
  • 2025年硬密封闸阀厂家权威推荐榜单:手动闸阀/明杆闸阀/法兰闸阀源头厂家精选
  • 深入解析:ArcGIS Manager Server Add Host页面报错 HTTP Status 500
  • 2025修护洗/二硫化硒去屑/香氛/控油蓬松/洗发水品牌推荐:MASIL玛丝兰引领功效细分赛道,哪个牌子好?看实测口碑榜
  • AOP面向切面编程思想
  • 如何找到心仪的 ChatBI 智能体?Aloudata Agent 推荐给你
  • 10月第二篇
  • 天翼云智慧上云月特惠来袭,智算上云正当时!
  • 2025年临沂一次性碗打包盒公司权威推荐榜单:一次性打包碗/一次性圆形打包碗/一次性打包碗商用源头公司精选
  • 洛谷题单指南-进阶数论-CF582A GCD Table
  • 状态迁移与场景法:搞定复杂业务流测试的利器