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

non*_*one 5 javascript google-chrome google-chrome-extension google-chrome-devtools

所以这就是我想要做的.我想在使用谷歌浏览器时保存所有HTTP(内容+请求+响应).我找到了一种方法,使用网络工具(在开发人员工具中),我可以手动下载所有内容.

现在我想自动完成整个过程,所以我不需要做任何手动操作.我认为我们可以通过使用devtools.networkAPI 编写简单的Chrome扩展程序来实现这一目标.

chrome.devtools.network.onRequestFinished.addListener(
    function(request) {
    //dosomething
});
Run Code Online (Sandbox Code Playgroud)

但我很遗憾,我以前从未做过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"
     }
}
Run Code Online (Sandbox Code Playgroud)

并粘贴了第一个代码片段devtools.js,但它给了我一个错误:

网络未定义

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

Xan*_*Xan 4

来自“扩展开发工具”

APIchrome.devtools.*模块仅适用于在 DevTools 窗口中加载的页面。内容脚本和其他扩展页面没有这些 API。因此,API 仅在 DevTools 窗口的生命周期内可用。

devtools.html因此,只要它打开,您就可以使用它,但不能在后台使用。


或者,您可以使用chrome.debuggerAPI,它与开发工具一样有效没有打开。请注意,这是一个非常低级的 API,几乎没有文档。

因为,从您的其他问题来看,您的目标是自动化该过程 - 这可能是一个更好的路径(因为据我所知,没有自动方式打开启用了开发工具的页面)。APIdebugger可以复制开发工具的功能,但一次只能将一个工具附加到页面 - 因此,debugger如果调用开发工具,该工具将停止工作

编辑:自 Chrome 63 起,Chrome 支持多个调试器客户端,因此可以chrome.debugger同时附加开发工具 和 。