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

标签 google-chrome-extension google-chrome-devtools

documentation说“每次打开 DevTools 窗口时都会创建扩展的 DevTools 页面实例。DevTools 页面在 DevTools 窗口的生命周期内存在。”

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

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

最佳答案

如果不打开 devtools 窗口,则无法使用 chrome.devtools API。 Facebook 像素助手使用 chrome.webRequest用于获取有关网络请求的信息的 API。此 API 不提供对响应主体的任何访问,因此这不是特别有用。

还有一些更(强大)的方法,FB Pixel Helper extension 未使用这些方法 :

  • chrome.debugger只要 devtools 窗口未打开,API 允许您执行 devtools 能够执行的几乎所有操作,包括查询响应主体。在下面的解释中,我假设您已经连接到调试器。如果您不知道如何操作,请参阅 this answer举个例子。

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

    对于其他网络事件/命令,请参阅 debugging protocol specification for network .

  • Content scripts可以使用 performance.timing用于查询(顶级/子)框架中文档加载时间的 API。

关于google-chrome-extension - 如何在不实际打开 DevTools 窗口的情况下访问 DevTools API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30557513/

相关文章:

javascript - Chrome 扩展 : how to mute all audio from certain tab

Javascript以编程方式调用Chrome对话框打印的 "Save as PDF"功能

google-chrome - 如何防止脚本关闭 Chrome 中的窗口/选项卡?

javascript - 允许 WebRtc 应用程序的用户通过 javascript 下载 webrtc 日志

google-chrome-extension - 为什么 chrome.devtools.network "undefined"?

javascript - Chrome 开发工具。我正在尝试从逐步调试中排除扩展 js 文件。但是设置中的 "Blackbox content script"不起作用

google-chrome-extension - chrome 扩展 - 如何获取 chrome 商店 URL

javascript - appendChild()在我的YouTube chrome扩展程序中不起作用

javascript - Chrome 扩展,获取当前标签页的标题

google-chrome-devtools - Chrome 开发者工具 : Bug while live edit