晴天1 发表于 2024-11-26 20:56:57

双击下载当前页面所有图片并打包为压缩包

本帖最后由 晴天1 于 2024-11-28 15:34 编辑

**本人经常收集各种卡通头像图片,故借助GPT花了半天编写此脚本,希望可以帮助有同样需求的小伙伴**
1、实现双击下载当前页面所有图片并打包为压缩包下载
2、按钮可以拖拽,刷新页面会记忆拖拽位置
3、页面中会显示下载图片数量(如果有图片未下载成功不会消失,暂未解决)
4、首次运行需要手动点击《总是允许全部域名》

双击下载当前页面所有图片
配置说明(本人使用篡改猴tampermonkey):
首次点击下载图片的时候会提示 《一个用户脚本试图访问跨源资源。》,需要选择《总是允许全部域名》
![选择允许全部域名](https://scriptcat.org/api/v2/resource/image/oTcmehrtDTFQyVjX)
如果选错了,可以按照以下步骤手动允许跨域资源
1、在安装后进入该脚本的编辑页面
2、点击右侧的设置
3、下拉找到XHR安全
4、用户域名白名单手动添加规则输入 *
![手动添加域名白名单](https://scriptcat.org/api/v2/resource/image/OcLVwWO8z5OQML0k)
11-27更新:
1、优化为下载当前页面所有图片并打包为压缩包

11-28更新:
经过本人多个网站测试使用,目前效果已经很不错了,近期应该不会再更新了
优化内容如下
1、将压缩文件内容设置为根据图片格式分文件夹存放
2、下载时设置最小图片大小分文件夹下载,并可以记忆此大小
3、优化图片文件后缀检测方式,可以更准确识别图片类型
4、减少按钮文字内容显示
5、优化了下载图片请求,解决部分情况下下载图片失败
6、解决了页面包含iframe的情况下多次生成按钮,只在主页面生成一次按钮

steven026 发表于 2024-11-26 23:20:58

可以直接使用`GM_download`下载图片,这样不会涉及跨域问题
```js
GM_download('https://bbs.tampermonkey.net.cn/uc_server/data/avatar/noavatar.svg','test.svg')
```

没必要先用`GM_xmlhttpRequest`单独下载图片为`blob`再用`GM_download`保存,多此一举
除非你想把图片批量下载用`js-zip`之类的库打包,然后只保存一次

晴天1 发表于 2024-11-27 09:20:51

steven026 发表于 2024-11-26 23:20
可以直接使用`GM_download`下载图片,这样不会涉及跨域问题
```js
GM_download('https://bbs.tampermon ...

起初就是想这么做的,奈何压缩的步骤研究了半小时没搞出来{:4_115:}
页: [1]
查看完整版本: 双击下载当前页面所有图片并打包为压缩包