2012-03-25 28 views
2

使用谷歌浏览器扩展程序,我想引发一些事件或以某种方式检测我在浏览器中收到的每个HTTP响应。检测所有传入的HTTP文件谷歌浏览器扩展程序

非常多 - 我想使用Google Chrome扩展程序准确检测Chrome开发人员工具的“网络”标签。

例如,如果我打开网络选项卡并转到Google.com,我会看到每个.js,.css,图像等。我可以以某种方式检测到这一点吗?

编辑:

我曾尝试以下(这是我所期望的每个请求完成之后被炒鱿鱼):

chrome.webRequest.onCompleted.addListener(function(details) { alert('hey'); }); 

但似乎永远不会被解雇。

回答

7

您可以使用该Web请求的API,要知道,这次来到在Chrome浏览器版本17所以你会需要设置minimum_chrome_version至17
http://code.google.com/chrome/extensions/webRequest.html
http://code.google.com/chrome/extensions/manifest.html#minimum_chrome_version

的manifest.json

{ 
    "name": "WebRequest", 
    "description": "WebRequest - onCompleted", 
    "version": "0.1", 
    "permissions": ["<all_urls>", "webRequest"], 
    "background": { 
    "scripts": ["background.js"] 
    }, 
    "manifest_version": 2 
} 

background.js

chrome.webRequest.onCompleted.addListener(function(details) { 
    console.debug(details); 
}, { 
    urls: ["<all_urls>"] 
}); 

转到后台页面,并在加载/加载页面时查看控制台。

+0

我尝试过,但我似乎无法得到它的工作。我添加了以下内容:chrome.webRequest.onCompleted.addListener(function(details){alert('hey');});但我从来没有得到警报。 – MattW 2012-03-26 12:52:33

+2

@MattW你必须有一个RequestFilter,它不是可选的...尝试像这样'chrome.webRequest.onCompleted.addListener(function(details){alert('hey');},{url:[“” ]});' – PAEz 2012-03-27 09:13:01

+0

太棒了 - 为我工作。再次感谢! – MattW 2012-04-02 17:22:25

1

试试这个: background.js

chrome.webRequest.onCompleted.addListener 
(
    TrackRequest, 
    {urls: ["<all_urls>"]}, 
    ["responseHeaders"] 
); 


function TrackRequest(info) 
{ 
     console.log(info); 
} 

和manifest.js:

{ 
"name": "Ext", 
"version": "1.0", 
"manifest_version": 2, 
"description": "Ext template", 
"background": { 
"scripts": ["background.js"] 
}, 
"content_security_policy": "script-src 'self' chrome-extension-resource://readme.js; object-src 'self'", 
"permissions": ["webRequest","*://*/"] 
} 

您不能从后台脚本的 “阿勒特”。 要进行调试,请转至扩展并点击“背景页面”。你会看到那里的控制台输出。