网上有许多的工具可以做这件事,但我还是自己用Chrome Extensions的方式倒腾倒腾。

在google上搜索了一下 Chrome Extensions Tutorial之后,大概了解他的实现框架。
实现具体功能的话主要有三个重要模块

  1. ManiFest.json,他是实现一个插件的基础,没有你可能无法把东西塞到Chrome里。有了的他的话,你至少可以在Chrome里看到他。
  2. background.js,全局的js设置。我不大懂js,看了教程以后,将它定义成配置插件作用域与全局变量的地方。
  3. popup.html,有了它你就可以你就可以自定义插件的功能,我感觉具体的功能应该写在这里面

按照官网的案例走,可以将https://developer.chrome.com 下的页面的背景颜色全部变成绿的。当然我自己改成了天蓝色,并做了一些失措型的改造。

接下来,我将尝试一下将一个页面上的符合规则的图片全部下载下来。

在搞的时候,我突然发现对应的网站图片做了一个防盗链的安全措施,如果我直接下载的话,会报一个403的Error
目前为止,发现了一个坑,如果使用chrome.tabs.executeScript(code, function callback)的话,function callback返回的是对象数组,而不是code返回的对象。我在多次尝试后,发现了array of any result 的含义。。。。。。所以,在取出code执行结果的时候,需要用result[0]包一层。

const command = `const images = document.getElementsByClassName('inner-container');alert(images.length);let array = new Array();for(let i = 0;i < images.length; i++){array[i] = images[i].querySelector('img').src;}array;
`;changeColor.onclick = function(element) {chrome.tabs.executeScript({code : command},function(result){#大概这样 用在满足条件的网页,会输出一个url数组alert(result[0]);});};

之后,再用在callback函数里写一下下载逻辑,因为下载逻辑是从别的地方抄过来的,所以这里就不贴代码了,逻辑就是利用图片的url去构造一个标签然后模拟点击下载。特别之处就在于,如果直接利用download下载的话,会因为chrome浏览器的逻辑,直接打开另外一个标签显示你的图片。所以需要利用canvas。

放一个GitHub仓库地址,如果有兴趣的话可以从魔改我的代码开始。

【Chrome Extensions】实现一个可以下载图片的Chrome插件相关推荐

  1. 实现一个vue的图片预览插件

    vue-image-swipe 基于photoswipe实现的vue图片预览组件 安装 1 第一步 npm install vue-image-swipe -D 2 第二步 vue 入口文件引入 im ...

  2. 自制一个代码转图片的uTools插件

    时不时和实验室的人会有代码交流,每次展示代码都是直接上文件.或者截n个图.也或者就给个小片段.找了很久,终于找到这个开源工具,琐碎直接做成插件,日常搭配uTools,效率真高~~ MelodyJerr ...

  3. Taro 下载图片到手机

    最近需要做一个微信下载图片到手机的需求,因为涉及到微信的照片权限,因此做个记录 // 鉴权操作 判断是否有保存到相册的权限 // 有就直接下载 没有就弹窗提示给权限 downImg() {Taro.g ...

  4. 26.Android 下载图片保存到相册

    26.Android 下载图片保存到相册 Android 下载图片保存到相册 前言 实现思路 自定义Dialog 自定义Handler 自定义AsyncTask AndroidManifest配置权限 ...

  5. Chrome清除某一个网站的Cookie

    文章目录 Chrome清除某一个网站的Cookie 打开Chrome, 进网站设置 你懂的 右上角,输入想要删除Cookie的网站的网址,即可搜索出相关的全部Cookie内容. 太简单了 Chrome ...

  6. dw按钮图片滚动js_使用 React Hooks 实现仿石墨的图片预览插件(巨详细)

    点击上方"前端教程",选择"星标" 每天前端开发干货第一时间送达! 作者:DARRELL https://juejin.im/post/5e9bf299f265 ...

  7. 3d饼图 vue_这是我见过最优雅的Vue图片轮播插件——Vue-Awesome-Swiper

    介绍 在Web网页开发中,我们经常需要用到图片轮播,在以往传统的开发方式中有很多基于jquery的插件可供使用,但是随着目前各类前端框架层出不穷的现状,在某些方面特别是针对特定的场景,还是有不少地方不 ...

  8. php 实现跨站下载图片,一个图片url访问后直接下载怎样实现

    一个图片url访问后直接下载怎样实现 先看代码 downloadIamge(imgsrc, name) {//下载图片地址和图片名 let image = new Image(); // 解决跨域 C ...

  9. 制作一个简单的Chrome extensions并发布到应用商店

    制作一个简单的Chrome extensions并发布到应用商店 制作一个简单的Chrome extensions并发布到谷歌商店 一个简单的ShowTime extension 注:工具推荐使用VS ...

最新文章

  1. 传微软有意收购EA公司,连《绝地求生》的蓝洞也想一并收入囊中
  2. 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频
  3. 项目进度,你汇报清楚了么?
  4. FPGA基础知识极简教程(8)详解三态缓冲器
  5. Java实现身份证号码的验证,JAVA后台验证身份证号码
  6. HTML表单基础(掌握)
  7. 开源自研新基建,内核实践云数据,当此方为嘉年华 - 2020嘉年华大会侧记
  8. 关于OpenGL ES中的纹理压缩
  9. C语言-main函数的参数
  10. vmware虚拟机安装CentOS8提示错误:section %package does not end with %end(可用)
  11. C/C++ —— signed 与 unsigned 有符号和无符号数及其移位
  12. 根据用户输入的参数的个数来计算长方形或正方形的面积_小面积(2-4.5㎡)卫生间,怎么做干湿分离?(附:方案+参数+案例)...
  13. html一行文字布局,HTML页面文字布局与文字效果
  14. Java + OpenCV 实现图片人脸检测
  15. JAVA看云判断天气_如何看云识天气?
  16. Kubernetes基础1
  17. 微服务架构中职能团队的划分
  18. QGC地面站使用教程
  19. Java 读取Word表格中的文本和图片
  20. 【ACWing】195. 骑士精神

热门文章

  1. 闲谈IPv6-源IP地址的选择(RFC3484读后感)
  2. MVC、POJO、PO、DTO、TO、BO、VO、DAO、domian、delegate、sql
  3. 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码
  4. 扫地机器人朋友圈文案_最近,一台不务正业的愚大宝扫地机器人火遍朋友圈
  5. [IJKPLAYER]编译与DEMO运行
  6. 光纤、光缆的基本知识(2)
  7. 【2019南昌邀请赛现场赛 - G】Winner(思维、图论+缩点)
  8. android系统应用开发常用的adb命令个人收藏集锦(不断更新)
  9. Dubbo配置加载问题
  10. MapReduce之Partition分区实例操作