IWarn:第一个Chrome扩展应用

第一个Chrome应用

她有以下特点:

  1. 大部分代码,使用最新ES6标准编写(因此仅保证支持最新版Chrome浏览器)
  2. 结构化代码,清晰可描述
  3. 使用HTML5中的LocalStorage存储您的数据
  4. 代码简单、开源,可按照需要修改成您自己的扩展
  5. 大概就上面这几个…

上个图…

IWarn效果.
image-2451

嗯~实现了大概就是上面这个样子…

我为什么要了解Chrome扩展?

Chrome扩展可以直接调用Chrome浏览器提供的API(官网),可无障碍操作网页内容以及提示用户等等。

如果安装过百度翻译扩展(官网),就会明白其对网页内容进行划词翻译是如何实现的了.

当你想做一些事情来方便自己,就可以了解一下Chrome扩展开发了.

上面其实是废话…

IWarn简单说下

每一个Chrome扩展,都一定会有一个文件(manifest.json),这个文件相当于一个清单文件.它会告诉Chrome你使用了什么权限,引用了那些资源,叫什么名字等等.


//manifest.json
{
"name": "IWarn", # 名字
"version": "0.9.0", # 版本
"permissions":["contentSettings","tabs","notifications"], # 需要的权限:["内容设置","标签控制","系统通知(浏览器层级)"]
"content_scripts":[{ # 扩展访问用户正在浏览网页
"matches":[""], # 针对所有网页,此处可以配置单独的url
"js":["js/jquery.min.js","js/json2.js","js/content.js"], # 将这三个JS注入用户正在浏览的网页中..
"all_frames": true, # 顶层使用
"run_at":"document_end" # 浏览器DOM加载完成后启动..
}],
"manifest_version":2,
"description": "当访问指定网页,通知一个消息给自己", # 扩展应用描述.
"browser_action": { # Chrome浏览器右侧的图标控制
"default_icon": "image/icon.png" , # 扩展应用的图标
"default_title": "点击新增一个网址,通知给自己.", # 默认标题
"default_popup": "popup.html" # 点击图标之后,访问的HTML.
},
"background":{ # 常驻后台的JavaScript文件,用于给content_scripts中的content.js提供数据
"scripts":["js/background.js"] # 监听来自content.js的请求
},
"optional_permissions": ["notifications"], # 右键图标之后,选项页面需要的权限..
"options_page": "options.html" # 选项页面地址.
}

好了,大概就是上面酱紫.

更多可以看下官网的定义(Google官方,360中文翻译).

因国内很多浏览器已经改用Google内核进行开发,所以开发的Chrome扩展可以直接应用于国内部分浏览器(360极速是其中之一).

对于新动向,建议关注官方文档.


// background.js
/*

-- 我是 常驻在后台的JavaScript文件.
-- 也就是你看不见、看不见我操作界面..
-- 其实是这样的:
-- 随时在后台准备着,如果有请求过来,来自[content.js]我就会去查询LocalStorage.然后返回结果.

-- 更多 - 请看到底部.

*/
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { // 监听事件.

if (request.method == "getLocalStorage"){ // 如果是指定的请求.. 不明白去看看[content.js]哈.
sendResponse({data: localStorage[request.key]}); // 发送指定的查询数据呢.即使没有...也要发送
} else{
sendResponse({}); // 如果不是...就随便返回个空......
}

});
// -- by PRD 2016-06-18.
// -- CODE IS POETRY.
// -- WWW.07Q.NET

上面是驻留后台的JavaScript文件,其中的chrome.runtime.onMessage.addListener是用于监听来自content.js的请求.然后去LocalStorage中查询相关数据并返回(关于LocalStorage).

简单介绍如上..更多可以看源码.

关于ES6

开发这个扩展的时候,Chrome已经支持大部分ES6标准的新特性.

因此……..我果断选择了ES6进行开发,简单介绍如下:

ES6:定义变量

ES6之前:


var a = "a";
var b = "b";
var c = "c";

ES6:


let {a,b,c} = JSON.parse({"a":"a","b":"b","c":"c"});

函数定义

ES6之前:

function add(data,value,isclose){}

ES6:


(data,value,isclose)=>{}

更多的ES6新标准,可以参考:ES6中文翻译

源码

已将所有文件都开源了.可以访问Github进行下载.(地址)

如需帮助可通过上述网页中的邮件地址联系我..

这段时间…

看各种乱七八糟的,随便看.偶然看到Chrome扩展,就想起要不写一个吧.花了几天时间写出来了,并且进行了十分详细的注释.然后扔到Github.继续去学各种乱七八糟的了..

加油.

不忘初心,方得始终.

《IWarn:第一个Chrome扩展应用》上有3条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据