2011-07-13 73 views
2

是否可以通过本地页面的谷歌浏览器插件来监控网络流量?例如,我想监视每次网页请求特定文件(基于正则表达式匹配),并且如果用户单击该插件,它会为该文件打开一个新选项卡。Google Chrome插件开发 - 监控网络请求?

+0

本地含义'file://? – serg

+0

不,例如,我可以在开发人员选项卡中看到一个页面加载http://somesite.com/somemp3.mp3,并且任何时候发生这种情况,我希望能够通过单击按钮来下载该mp3打开一个新标签,指向该链接... – wuntee

+0

另请参阅http://stackoverflow.com/q/7819463/632951和http://stackoverflow.com/q/6831916/632951 – Pacerier

回答

3

的“正确”的方法是使用webRequest API,但它仍然是实验:

//background.html 
chrome.experimental.webRequest.onCompleted.addListener(function(details) { 
    console.log("resource", details.url); 
}); 

同时你可以捕捉正在加载的用下面的代码资源:

document.addEventListener("beforeload", function(event) { 
    console.log("resource", event.url); 
}, true); 

这需要进入与"run_at": "document_start"一起运行的内容脚本。

+0

它看起来像是工作,并能够找到基本要求,但似乎这些文件正在通过在SWF中的GET拉...以任何方式解决这个问题? – wuntee

+0

@wuntee'beforeload'是我知道的唯一方法,所有其他都涉及实验性API(我不确定这是否可以用于flash)。 – serg

+0

嗯...感谢您的帮助。它令人沮丧,因为我可以在开发者窗格的“网络”选项卡中看到它们被传输......假定窗格比扩展名具有更多特权。 – wuntee