如何在不实际打开 DevTools 窗口的情况下访问 DevTools API?

roh*_*hpr 1 google-chrome-extension google-chrome-devtools

文件说:“延长的DevTools页的一个实例被创建每次DevTools窗口打开时,存在的DevTools窗口的寿命DevTools页。”

但是,Facebook Pixel Helper设法在没有打开 devtools 窗口的情况下获取网络信息。

所以,我想知道是否有其他 API 或解决方法可以从 DevTools 窗口(特别是网络选项卡,Facebook 似乎能够做到)访问内容。

Rob*_*b W 5

如果chrome.devtools不打开 devtools 窗口,则无法使用 API。Facebook Pixel Helper 使用chrome.webRequestAPI 来获取有关网络请求的信息。此 API 不提供对响应正文的任何​​访问,因此这不是特别有用。

还有一些更(强大)的方法,它们没有FB Pixel Helper 扩展使用

  • chrome.debugger只要未打开 devtools 窗口,该API 几乎允许您执行 devtools 能够执行的任何操作,包括查询响应正文。在下面的解释中,我假设您已经连接到调试器。如果您不知道该怎么做,请参阅此答案以获取示例。

    1. 添加一个监听器 chrome.debugger.onEvent
    2. 发送Network.enable命令开始监听事件。
    3. 当请求完成时,onEvent将触发事件,方法名称设置为Network.responseReceived。事件参数包括请求/响应标头、状态行等。如果您还想获取响应正文,请调用Network.getResponseBody命令以获取响应正文。

    对于其他网络事件/命令,请参阅network调试协议规范

  • 内容脚本可以使用performance.timingAPI 查询(顶级/子)框架中文档的加载时间。