使用devtool进行Haro文件的Chrome扩展程序保存

时间:2015-04-24 11:00:44

标签: javascript google-chrome google-chrome-extension google-chrome-devtools

所以这就是我想要做的。 我想在使用谷歌浏览器时保存所有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中的第一个代码段,但它给了我一个错误:

  

网络未定义

我是否在正确的轨道上?如果是这样,我的代码出错了什么?

1 个答案:

答案 0 :(得分:4)

来自"Extending DevTools"

  

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