documentation表示“每次DevTools窗口打开时都会创建扩展程序DevTools页面的实例.DevTools页面存在DevTools窗口的生命周期。”
但是,Facebook Pixel Helper设法获取网络信息而不打开devtools窗口。
所以,我想知道是否有其他API或解决方法来访问DevTools窗口中的内容(特别是网络选项卡,Facebook似乎可以这样做)。
答案 0 :(得分:4)
如果不打开devtools窗口,则无法使用chrome.devtools
API。 Facebook Pixel Helper使用chrome.webRequest
API获取有关网络请求的信息。此API不提供对响应正文的任何访问权限,因此不是特别有用。
还有一些(强大的)方法,FB Pixel Helper extension使用 :
chrome.debugger
API允许您执行devtools能够执行的几乎任何操作,包括查询响应主体,只要devtools窗口未打开即可。在以下说明中,我假设您已经连接到调试器。如果您不知道如何操作,请参阅this answer以获取示例。
chrome.debugger.onEvent
Network.enable
命令以开始收听事件。onEvent
事件,方法名称设置为Network.responseReceived
。事件参数包括请求/响应头,状态行等。如果您还想获取响应主体,请调用Network.getResponseBody
命令以获取响应主体。 有关其他网络事件/命令,请参阅debugging protocol specification for network。
performance.timing
API在(顶级/子)框架中查询文档的加载时间。