enter image description here

我试图遵循https://betterprogramming.pub/chrome-extension-intercepting-and-reading-the-body-of-http-requests-dd9ebdf2348b创建一个Devtools面板,以便获取网站上特定帖子请求的响应.我从文章第二部分中的说明开始,创建一个基本的Devtools面板(看起来可以工作).随后,我在https://developer.chrome.com/docs/extensions/reference/api/devtools/network#type-Request处讨论了devtools.network API. 我决定try 使用getHAR()函数获取网络请求(https://developer.chrome.com/docs/extensions/reference/api/devtools/network#method-getHAR).

这是manifest.json:

{
  "manifest_version": 3,
  "name": "Extension",
  "version": "1.0",
  "description": "Description",
  "devtools_page": "devtools.html"
}

devtools.html:

<script src="devtools.js"></script>

devtools.js:

chrome.devtools.panels.create("MyPanel", null, 'panel.html');

panel.html:

<html>
    <body>
        <script src="panel.js"></script>
    </body>
</html>

panel.js:

  chrome.devtools.network.getHAR(
   function (harLog) {

    console.log('my output');
    console.log(harLog);

  }
);

如果我打开Devtools窗口并重新加载页面,则我在控制台中看不到扩展的输出,并且在chrome://extensions上也没有错误. 我做错了什么?

推荐答案

我假设您不是在查看DevTools本身的控制台(这是您登录的地方),而是在您打开DevTools的主网站的控制台上.您的代码在DevTools窗口中运行,而不是在扩展背景页面中运行,也不是在主网站中运行.

将DevTools打开为undocked window1,然后在DevTools窗口中按下Alt + Alt +I以打开another DevTools窗口,该窗口针对其他DevTools(而不是网站).

1: enter image description here

如果您在new DevTools窗口中输入location.href,您将看到一个URL,例如devtools://devtools/bundled/devtools_app.html?remoteBase=https://chrome-devtools-frontend.appspot.com/serve_file/@31f8248cdd90acbac59f700b603fed0b5967ca50/&can_dock=true&targetType=tab&veLogging=true,这表明您现在正在查看正在调试另一个DevTools窗口的DevTools窗口,这就是您需要查看在第一个DevTools窗口的上下文中记录的控制台输出.


总结一下,我们有:

  1. 网站example.com
  2. DevTools从步骤1开始调试 example.com
  3. DevTools B从步骤2调试DevTools A

如果example.com中的代码使用console.log,则它将显示在步骤2的DevTools A中.但如果DevTools A(例如您的自定义面板)中的代码使用console.log,则它将在步骤3中显示在DevTools B中.

(And yes, if you would like to debug issues that your panel has while you are debugging another DevTools window, you could continue your DevTools-ception by opening a new DevTools C window debugging DevTools B which debugs DevTools A which debugs example.com... Have fun.)

Javascript相关问答推荐

从连接字符串创建客户端时,NodeJS连接到CosmosDB失败

了解Node.js中的EventEums和浏览器中的addEventEums之间的关系

在网页上添加谷歌亵渎词

处理时间和字符串时MySQL表中显示的日期无效

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

这个值总是返回未定义的-Reaction

在使用REACT更改了CSS类之后,无法更改CSS样式

如何在FastAPI中为通过file:/URL加载的本地HTML文件启用CORS?

按下单键和多值

自定义图表工具提示以仅显示Y值

删除加载页面时不存在的元素(JavaScript)

JavaScript将字符串数字转换为整数

如何在每隔2分钟刷新OKTA令牌后停止页面刷新

在高位图中显示每个y轴系列的多个值

将以前缓存的 Select 器与querySelector()一起使用

验证Java脚本函数中的两个变量

ReactJS Sweep Line:优化SciChartJS性能,重用wasmContext进行多图表渲染

从客户端更新MongoDB数据库

检测带有委托的元素内部的点击,以及元素何时按其类名被选中