最近在做采集,发现用chrome的插件来下载整站也是一个不错的思路,所以想开发一个下载网页(仿站)的插件,学习过程如下:

首先查看一些文档资料

学习360翻译的开发文档:http://open.se.360.cn/open/extension_dev/overview.html

学习官网的开发文档:https://developer.chrome.com/extensions/getstarted

模仿别人写的类似插件

从chrome地址栏里输入:chrome://extensions/ 安装插件。

然后在:chrome://version/的个人资料路径里查找安装的插件目录。

一般是:C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Profile 2\Extensions

或:C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Extensions

最近写了一个保存图片、CSS文件、JS文件的插件,算是抛砖引玉,现在简单介绍一下:

主要功能:

1、可以保存当前标签页下,所有图片,包括背景图片、a链接图片、img src图片。
2、可以保存当前标签页下,所有的样式文件。
3、可以保存当前标签页下,所有的Javascript脚本文件。
4、可以通过右键和点击插件图片来调用下载功能。
5、下载的时候,建议把下载提示对话框选项关闭,否则会提示很多对话框。

配置文件manifest.json

{
"manifest_version": 2, "name": "保存图片样式脚本文件",
"description": "Save and download all images CSS and JS file.",
"version": "1.0",
"background": {
"scripts": ["background.js"]
}, "browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"icons": {
"128": "icon128.png",
"32": "icon32.png",
"48": "icon48.png",
"64": "icon64.png"
},
"permissions": ["downloads", "contextMenus", "webRequestBlocking", "tabs", "\u003Call_urls>"]
}

后台运行程序background.js:

var theApp = {
init : function () {
this.initContextMenus();
this.initEventListener();
},
initContextMenus : function () {
chrome.contextMenus.create({
title: "保存图片样式脚本文件",
contexts: ["all"],
onclick: this.download
});
}, initEventListener: function () {
chrome.extension.onMessage.addListener(function (a) {
console.log(a.action);
if ("IMAGELIST_LOAD" == a.action) {
var images = a.images;
for(var i = 0; i<images.length; i++) {
var f = images[i].src.replace(/https*:\/\//, '');
console.log(f);
chrome.downloads.download({
url: images[i].src,
filename:f,
saveAs : !1,
conflictAction : "overwrite"
});
}
}
});
}, download: function() {
chrome.tabs.query(
{
active : !0,
windowId : chrome.windows.WINDOW_ID_CURRENT
},
function(b){
c = b[0];
chrome.tabs.executeScript(c.id, {
file: "content.js",
allFrames : !0
}, function () {
var a = "pageQuery.getList(" + c.id + ");";
chrome.tabs.executeScript(c.id, {
code : a,
allFrames : !0
})
});
}
);
}
}
theApp.init();

右上角弹框代码popup.html:

<!doctype html>
<html>
<head>
<title>Getting Started Extension's Popup</title>
</head>
<body>
<button id="status" style="width:200px;">保存图片样式脚本文件</button>
<script type="text/javascript" src="jquery.js"></script>
<script src="popup.js"></script>
</body>
</html>

Github源码地址:https://github.com/lilongsy/saveimages

一个chrome图片下载插件的开发过程的更多相关文章

  1. Chrome IDM下载插件安装使用方法

    一. 下载IDM (1)官方网站: http://www.internetdownloadmanager.com/download.html 二.安装IDM IDM安装 (1)运行安装程序    前进 ...

  2. 安利给班里的大家一个chrome的GitHub插件-----gayhub

    title: 一个好用的Github插件--gayhub date: 2017-09-20 15:41:36 tags: --- 别跑, 这真是正经插件. 效果, 一图流: 具体效果在项目地址很详细 ...

  3. python做一个简易图片下载工具

    代码有点乱,先这样 # -*- coding:utf-8 -*- #__author__ :kusy #__content__:文件说明 #__date__:2018/11/01 11:01 impo ...

  4. 一款超炫的jquery图片播放插件[Cloud Carousel]

    今天给大家介绍一个jquery图片播放插件,也可以说是一款幻灯片放映插件,它叫Cloud Carousel,支持自动播放.图片预览.鼠标滚轮滚动,非常酷,下图是效果预览. 该jquery图片播放项目演 ...

  5. jQuery 图片裁剪插件 Jcrop

    Jcrop是一个jQuery图片裁剪插件,它能为你的WEB应用程序快速简单地提供图片裁剪的功能.特点如下: 对所有图片均unobtrusively(无侵入的,保持DOM简洁) 支持宽高比例锁定 支持 ...

  6. browse下载插件DownThemAll!

    DownThemAll!是一个不错的下载插件,它安装在各类browse上.

  7. 如何下载Image Properties Context Menu(图片)插件

    如何下载Image Properties Context Menu(图片)插件 可以通过:http://www.cnplugins.com/zhuanti/four-image-processing. ...

  8. Discuz!图片查看插件(支持鼠标缩放、实际大小、旋转、下载)

    Discuz!图片查看插件(支持鼠标缩放.实际大小.旋转.下载) 图片查看是网站中的常用功能,用于展示详细的图片.在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看 ...

  9. 图片延时加载原理 和 使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)

    图片加载技术分为:图片预加载和图片延时加载. javascript图片预加载和延时加载的区别主要体现在图片传输到客户端的时机上,都是为了提升用户体验的,延时加载又叫懒加载.两种技术的本质:两者的行为是 ...

随机推荐

  1. object-c中的BOOL类型

    object-c中的布尔类型比C语言中的bool类型早了10年,它具有YES和NO两种值.在object-c中的布尔类型BOOL实际上是一种带符号的字符类型(signed char),它使用的空间是1 ...

  2. github 之 下载历史版本

    1.打开github中要下载的项目 2.点击commits 点击上图中标记的地方,进入下图所示: 3. 选择列表中的某个版本 4. Browse Files 5. 下载 点击上图中的 Download ...

  3. PHP根据URL提取根域名

    <?php #使用示例 echo getBaseDomain('http://blog.jp.goo.ne.jp/index.php')->domain;echo "\n&quo ...

  4. Zepto 使用中的一些注意点(转)

    http://www.zeptojs.cn/     zepto英文站在线文档 http://www.css88.com/doc/zeptojs_api/       zepto中文站在线文档 htt ...

  5. JavaScript中typeof和instanceof深入详解

    这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方. typeof 先来说说typeof吧.首先需要注意的是,typeof方法返回一个字 ...

  6. delphi假死线程堵塞解决办法

    Delphi的高效不多说... 俗话说:真正的程序员用C语言,聪明的程序员用Delphi,一点都不假,和C++比它比C++更简单,更容易上手,功能丝毫不逊色C++,比起VB,毫无疑问比VB好多了,重要 ...

  7. oracle 查询哪些表分区

    如果查询当前用户下得分区表:select * from user_tables where partitioned='YES'如果要查询整个数据库中的分区表:select * from dba_tab ...

  8. 如何改变xls中的单元格左上角的图标

    点绿色小三角的是文本型数字,是不能参与加减运算的.首先选中含有绿色小三角的单元格,右击鼠标选择,设置单元格格式, 数字选项卡,选择常规

  9. spring mvc 资源包的映射

    在springmvc.xml中进行设置: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  10. Flash神奇的视频利器StageVideo

    在过去的几年里,视频已经成为web网页上最主流的趋势之一,这主要是由Adobe Flash Player来推动的.2007年Flash Player 9中引入了H.264和全屏支持技术,通过在web页 ...