当前位置: 首页 > 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.fuzeviewer.com/news/251/

相关文章:

  • Luogu P3237 [HNOI2014] 米特运输 题解 [ 蓝 ] [ 树形 DP ] [ 哈希 ]
  • 各个版本的sqlite-jdbc jar下载链接
  • echart - f
  • BongoCat日志搜索程序:正则表达式与高级筛选
  • c# 使用 jwt
  • macro出pin
  • 读书笔记:告别数据冗余!Oracle引用分区让父子表管理如此简单
  • 2025 年 10 月绕包电缆头,熔接电缆头,预制电缆头,冷缩管电缆头厂家最新推荐,产能、专利、环保三维数据透视
  • 2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤效能
  • 路沿石加工设备厂家有哪些?2025石材机械十大品牌
  • 2025年10月重庆装饰装修公司推荐排行榜:十家企业综合对比与实用指南
  • 工业水泵控制移动终端APP需求于开发
  • 《CSS盒子模型》笔记总结 - 教程
  • MCS-51中断系统
  • 触控感应芯片电容式触摸IC 4通道触控方案VK36N4D
  • 测试领域,苏州永创-STD2000X-半导体分立器件电参数测试仪系统能测试哪些元器件和参数 - FORCREAT
  • 2025年AI IDE的深入对比与推荐排行:从好用到生成效果的转变
  • 20232411 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025 年 10 月进销存管理系统,进销存软件,进销存管理软件公司最新推荐,技术实力与市场口碑深度解析!
  • 常用数据管理工具与平台汇总
  • 2025年10月美国投资移民机构推荐榜:权威机构综合对比分析
  • 2025 年企业级 GPU 服务器,8 卡风扇 GPU 服务器,大模型训练 GPU 服务器厂家最新推荐,技术实力与市场口碑深度解析
  • 揭秘 MCP Streamable HTTP 协议亲和性的技术内幕
  • 2025年10月EB5投资移民中介评测榜:客观数据支撑的专业推荐
  • 2025年10月EB5投资移民中介评价报告:五强机构深度解析
  • 2025年氨水换热器源头厂家权威推荐榜单:板式换热器/缠绕管换热器/螺旋板换热器源头厂家精选
  • 权威媒体:得帆信息连续两年领跑iPaaS市占率