目录结构
5.1 下载
5.2 网络请求
5.3 代理
5.4 系统信息
本章讲解的是部分较为高级的API,以供哪些有更高要求的读者阅读。
5.1 下载
声明
"permissions": [
"downloads"
]
方法
chrome.downloads.download({
url:, //下载的url
filename:, //保存的文件名
conflictAction:, //重名文件的处理方式
saveAs:, //是否弹出另存为窗口
method:, //请求方式(post或get)
headers:, //自定义header数组
body:, //post的数据
}, callback)
conflictAction的值只能为uniquify(在文件名后面添加带括号的序号,以保证文件名唯一),overwrite(覆盖)或者prompt(给出提示,让用户自行决定是对文件进行重命名还是将其覆盖、)
5.2 网络请求
声明
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.google.com/"
]
注意:webRequest接口无法在Event Page中使用。
对于目前的网络请求,笔记实用的功能包括阻断链接,更改header和重定向。
主要方法
chrome.webRequest.onBeforeRequest.addListener(function(details){
return {cancel: true}},
{urls: ["*://bad.exemple.com/*"]},
["blocking"]) //阻断所有想bad.exemple.com的连接
chrome.webRequest.onbeforeSendHeaders.addListener(
function(details){},{},[])
5.3 代理
声明
"permissions": [
"proxy"
]
方法
chrome.proxy.settings.set({},callback)
chrome.proxy.settings.get({},callback)
例子
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "socks5",
host: "1.2.3.4",
port: 1080
}, //所有的http协议的浏览都使用1.2.3.4:1080这个socks5代理
proxyForHttps: {
scheme: "socks5",
host: "1.2.3.4",
port: 1080
}, //所有的https协议的浏览都使用1.2.3.4:1080这个socks5代理
proxyForFtp: {
scheme: "http",
host: "1.2.3.4",
port: 80 //所有的http协议的浏览都使用1.2.3.4:80这个http代理
}
bypassList: ["foobar.com"] //不使用任何代理
}
};
chrome.proxy.settings.set(
{value: config},
function(){}
);
另外,chrome还提供singleProxy属性(任何协议都要使用此代理)和fallbackProxy属性(未匹配到的协议使用此代理)。pacScript指定了代理访问所使用的pac脚本,因此可以通过url属性指定脚本位置,也可以直接通过data属性指定脚本内容。
5.4 系统信息
声明
"permissions": [
"system.cpu",
"system.memory",
"system.storage"
]
方法
三个接口都提供了getInfo的方法
chrome.system.cpu.getInfo()
chrome.system.memory.getInfo()
chrome.system.storage.getInfo()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。