我刚开始使用谷歌Chrome扩展,我似乎不能从我的后台js登录到控制台。当发生错误时(例如,由于语法错误),我也找不到任何错误消息。

我的清单文件:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "pageCapture",
    "tabs"
  ]
}

background.js:

alert("here");
console.log("Hello, world!")

当我加载扩展,警报出现,但我没有看到任何被记录到控制台。我做错了什么?


你找错地方了。这些控制台消息不会出现在web页面中,而是出现在不可见的后台页面(ManifestV2)或service worker (ManifestV3)中。

要查看正确的控制台,打开devtools后台脚本的上下文:

访问chrome://extensions/或右键单击扩展图标并选择“管理扩展”。 启用开发人员模式 单击名为后台页面(ManifestV2)或service worker (ManifestV3)的链接。

ManifestV2扩展的截图:

ManifestV3扩展的截图:


另外

如果你想在manifest.json中看到content_script js文件(当“background”属性未设置时)

"content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["popup.js"],
  }]

"browser_action": {
    "default_icon": "icon_32.png",
    "default_popup": "popup.html"
  }

然后右键单击扩展图标,点击检查弹出和开发人员窗口打开popup.html打开,在那里你看到控制台选项卡。


对于希望看到他们的chrome扩展的“内容脚本”的调试控制台的追随者,可以通过做一个正常的“显示开发人员控制台”,然后使用下拉箭头选择它的“javascript环境”,然后你就可以访问它的方法等。


我有同样的问题,在我的情况下,日志被设置为“隐藏所有”在控制台选项卡在Chrome开发工具。 我甚至没有意识到这是一个选项,我不记得把它关掉了


类似于Michiel的回答,我也有一个有趣的控制台配置:一个过滤器,我不记得设置:

清除过滤器后,我看到的消息。


我也有这个问题。似乎我的网页没有更新到新保存的脚本。这个问题通过在chrome浏览器中按Ctrl + refresh(或Ctrl + F5)来解决。


如果我们想从弹出式页面读取打印到控制台的消息,我们可以单击扩展图标打开弹出式页面,然后右键单击弹出式页面的任何地方,下拉菜单将显示,我们只需单击“检查”菜单打开开发人员工具。注意,弹出页面必须一直打开。如果它被关闭(通过window.close()),开发人员工具也将被关闭。


另一个答案(s)工作(s)为background.js,但如果你正在寻找控制台。从弹出的日志,然后你可以尝试:

var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');

我使用cra进行开发,这对我来说很有效。


对于那些为Firefox开发扩展的人:

TL;DR版本:您需要使用Ctrl+Shift+J来调用浏览器控制台窗口,并单击右上角的设置图标,并确保选中“显示内容消息”。

来自相关stackoverflow问题的更长的解释:我如何在Firefox web扩展中看到后台脚本的console.log输出?