所以这就是我想要做的。 我想在使用谷歌浏览器时保存所有HTTP(内容+请求+响应)。我找到了一种方法,使用网络工具(在开发人员工具中),我可以手动下载所有内容。
现在我想自动完成整个过程,所以我不需要做任何手动操作。我认为我们可以通过使用devtools.network
API编写简单的Chrome扩展程序来实现此目的。
chrome.devtools.network.onRequestFinished.addListener(
function(request) {
//dosomething
});
但是我很遗憾,我之前从未做过Chrome扩展开发。我制作了一个简单的manifest.json
文件:
{
"manifest_version": 2,
"name": "My extension",
"version" : "1.0",
"background": {
"scripts": ["devtools.js"],
"persistent": true
},
"devtools_page": "devtools.html",
"browser_action": {
"default_title": "Get it",
"default_icon" : "icon.png"
}
}
并粘贴了devtools.js
中的第一个代码段,但它给了我一个错误:
网络未定义
我是否在正确的轨道上?如果是这样,我的代码出错了什么?
答案 0 :(得分:4)
chrome.devtools.*
API模块仅适用于DevTools窗口中加载的页面。内容脚本和其他扩展页面没有这些API。因此,API仅在DevTools窗口的生命周期内可用。
所以你可以在devtools.html
中使用它,只要它已经打开,但不能在后台使用。
或者,您可以使用chrome.debugger
API,只要Dev Tools 不打开就可以使用{{3}}。请注意,它是一个非常低级的API,几乎没有文档。
从你的其他问题来看,你的目标是自动化这个过程 - 它可能是一条更好的道路(因为据我所知,没有自动化方式打开一个启用了Dev Tools的页面)。 debugger
API可以复制Dev Tools的工作,,但一次只能将一个工具附加到页面 - 因此,如果调用Dev Tools,。 debugger
将停止工作
编辑,因为Chrome支持Chrome 63多个调试器客户端,因此可以同时附加开发工具和chrome.debugger
。