刚开始有点迷茫就是background(背景页)、Content Scripts(内容注入)二者的关系。这次小工具开发中没有遇到其他,暂时先研究这2个。

background是一个运行在扩展进程中的HTML页面(也可以不指定HTML,自动生成)。它在你的扩展的整个生命周期都存在,同时,在同一时间只有一个实例处于活动状态。

Content Scripts是根据规则注入到你指定的在Web页面内运行的javascript脚本,换句话说所注入的只是当前的Web页面。

Content Scripts本身虽然可以单独使用,但是正常的业务我们需要对扩展提供的选项页进行一些数据配置,所以Content Scripts很大程度上还是需要跟扩展进行消息通信。

而请求有分一次性请求和长时间保持连接两种方式,以下是一次性请求的方式:

Content Scripts发送请求:

chrome.extension.sendRequest({method: "get_status"}, function(rep) {
// method 表示不同的请求方式,因为只能有一个background页
});

background端接收请求:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.method == 'get_status')
sendResponse({user_name:'admin'});
else
sendResponse({});
});

以上就是简单的一些通信消息传递。

更多知识其实可以参考360扩展开发文档