和浏览器的交互 1、书签
使用chrome.bookmarks模块来创建、组织和管理书签。也可参看 Override Pages,来创建一个可定制的书签管理器页面。1.1、manifest.json 中配置
对象和属性: 签是按照树状结构组织的,每个节点都是一个书签或者一组节点(每个书签夹可包含多个节点)。每个节点都对应一个BookmarkTreeNode 对象。
可以通过 chrome.bookmarks API来使用BookmarkTreeNode的属性。
例子: 创建了一个标题为 "Extension bookmarks"的书签夹。
创建了一个指向扩展开发文档的书签。
2、Cookies 2.1、manifest.json 中配置
3、开发者工具
下列API模块提供了开发人员工具的部分接口,以支持您对开发人员工具进行扩展。(1)devtools.inspectedWindow (2)devtools.network (3)devtools.panels
3.1、manifest.json 中配置
4、Events
Event 是一个对象,当你关注的一些事情发生时通知你。 以下是一个使用 chrome.tabs.onCreated event 的例子,每当一个新标签创建时,event对象会得到通知:5、浏览历史
chorme.history 模块被用于和浏览器所访问的页面记录交互。你可以添加、删除、查询浏览器的历史记录。5.1、manifest.json 中配置
6、插件管理
chrome.management 模块提供了管理已安装和正在运行中的扩展或应用的方法。对于重写内建的新标签页的扩展尤其有用。要使用这个API,您必须在扩展清单文件中 中对授权。
6.1、manifest.json 中配置
7、标签
chrome标签模块被用于和浏览器的标签系统交互。此模块被用于创建,修改,重新排列浏览器中的标签。7.1、manifest.json 中配置
8、视窗
使用chrome.windows模块与浏览器视窗进行交互。 你可以使用这个模块在浏览器中创建、修改和重新排列视窗。8.1、manifest.json 中配置
时间通知(notifications)的实现 1、创建notification的两种方法:
// 创建一个简单的文本通知:
var notification = webkitNotifications.createNotification(
'48.png',// 图标 URL,可以是相对路径
'您好!',// 通知标题
'内容(Lorem ipsum...)' // 通知正文文本
);
// 或者创建 HTML 通知:
var notification = webkitNotifications.createHTMLNotification(
'notification.html' // HTML 的 URL,可以是相对路径
);
2、通知与其他页面的通信方式:
// 来自后台网页...
chrome.extension.getViews({type:"notification"}).forEach(function(win) {
win.doOtherThing();
});
3、时间通知的实例
下面就创建一个时间通知,每个10秒钟弹出一次时间提醒,一共弹出10次。3.1、manifest.json
3.2、background.js
// 格式化时间函数
Date.prototype.format = function(format){
var o = {
"M+" : this.getMonth()+1,//month
"d+" : this.getDate(),//day
"h+" : this.getHours(),//hour
"m+" : this.getMinutes(),//minute
"s+" : this.getSeconds(),//second
"q+" : Math.floor((this.getMonth()+3)/3),//quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
// 测试浏览器是否支持 webkitNotifications
if(window.webkitNotifications) {
// 显示通知
show();
var interval = 0;
// 弹出10次
var times = 10;
// 创建定时器
var timer = setInterval(function() {
interval++;
// 10秒钟弹出一次
if (10 <= interval) {
show();
interval = 0;
times--;
if(times <- 0) clearInterval(timer);
}
},1000);
}
源代码
https://github.com/arthinking/google-plugins/tree/master/example/notifications