昊梵体育网

从零打造一款实用的Chrome图片下载器扩展

为什么需要这款工具相信很多做自媒体、电商运营或者设计的朋友都有过这样的经历:在网页上看到好看的图片想批量下载,却只能一个
为什么需要这款工具

相信很多做自媒体、电商运营或者设计的朋友都有过这样的经历:在网页上看到好看的图片想批量下载,却只能一个个右键保存;或者遇到嵌套很深的DOM结构,怎么都选不到目标图片区域。这款扩展就是为了解决这些问题的。

核心功能1. 可视化DOM选择

这是最实用的功能。点击扩展按钮后,鼠标变成十字光标,移动时会在当前元素上显示一个蓝色半透明高亮框。这个高亮层使用fixed定位,确保不会被页面其他元素遮挡,能清晰看到当前选中的是哪个区域。

2. 智能选择器提取

按ESC键后,扩展会自动识别当前元素的CSS选择器。优先用ID(#xxx),其次用类名(.class1.class2),最后回退到标签名。识别到的选择器会自动复制到剪贴板,方便后续使用。

3. 批量图片扫描

输入选择器后点击扫描,扩展会在目标DOM范围内查找所有img标签、canvas画布和背景图片。支持懒加载图片(data-src、data-original等属性)和srcset响应式图片。

4. ZIP打包下载

扫描到图片后,可以一次性打包成ZIP下载,省去逐个保存的麻烦。

使用方法方式一:可视化选择(推荐)点击扩展图标打开弹窗点击" Pick Element from Page"按钮弹窗自动关闭,页面顶部出现提示"移动鼠标选择元素,按 ESC 复制选择器并退出"鼠标变成十字光标,移动时蓝色高亮框跟随显示当前选中的元素找到目标区域后按ESC键页面底部弹出提示,显示已复制的选择器名称,比如" Selector copied: .post-content"再次点击扩展图标,选择器已经自动填入输入框点击扫描,然后下载

方式二:手动输入选择器右键检查元素,复制CSS选择器粘贴到扩展输入框点击扫描选择图片下载关键技术实现Content Script注入策略

扩展使用manifest v3的scripting API动态注入content script。为了避免重复注入导致的事件监听冲突,采用了单例模式:

每次注入前都会检查并清理旧实例,确保页面上始终只有一个选择器在运行。

消息通信机制

Popup和Content Script之间通过chrome.runtime.sendMessage通信。主要有三种消息类型:

START_PICKING:启动选择模式STOP_PICKING:停止选择模式SCAN_IMAGES:扫描指定选择器下的图片

这种设计让选择模式可以在popup关闭后继续运行,因为content script是独立于popup存在的。

图片扫描逻辑

扫描函数会在目标元素内查找三种类型的图片:

img标签:提取src、currentSrc,以及各种懒加载属性canvas:通过toDataURL转为图片格式背景图片:解析style中的background-image属性

扫描结果会返回图片的URL、尺寸、类型等信息,方便后续处理。

实际应用场景场景一:电商商品图批量下载

在淘宝、京东等电商页面,商品详情图通常放在特定的div容器里。用选择器模式选中容器,就能一次性下载所有商品图,比一个个右键保存高效太多。

场景二:自媒体文章配图提取

看到一篇好文章想借鉴配图?选中文章内容区域,一键提取所有图片,省去手动保存的繁琐。

场景三:设计师素材收集

浏览设计网站时,选中整个画廊区域,批量下载参考图,素材收集效率翻倍。

安装方法下载源码到本地打开Chrome扩展管理页面(chrome://extensions/)开启开发者模式点击"加载已解压的扩展程序"选择源码目录注意事项扩展需要activeTab权限才能注入脚本,首次使用可能需要刷新页面部分网站有图片防盗链,可能无法直接下载,需要配合其他工具使用选择器越精确,扫描结果越准确,建议优先使用ID选择器

这款扩展虽然功能不算复杂,但胜在实用。日常工作中遇到需要批量下载图片的场景,它能帮你节省不少时间。如果你也有类似需求,可以把这个发给AI让AI给你生成一个,或者私信我发你源代码。近期整理完会放到 gitlab上。