Chrome扩展程序 v3 中使用消息时出现“Uncaught TypeError:Failed to construct 'URL':Invalid URL”错误

4

这是一个适用于Chrome v3的最小扩展程序:

manifest.json

{
  "manifest_version": 3,
  "name": "Test",
  "version": "1.0",
  "description": "Test extension",
  "icons": {
    "48": "dark.png"
  },
  "background": {
    "service_worker": "button.js"
  },
  "permissions": [
    "activeTab"
  ],
  "action": {
    "default_icon": "dark.png",
    "default_title": "Test"
  }
}

button.js

chrome.action.onClicked.addListener(tab => {
  console.log('clicked')
  chrome.tabs.sendMessage(tab.id, { value: false })
});

这个API文档看起来相当清晰。所以我不明白,为什么当我按插件按钮时,会出现奇怪的错误:

extensions.js:4187 Uncaught TypeError: Failed to construct 'URL': Invalid URL
    at ExtensionsErrorPageElement.onSelectedErrorChanged_ (extensions.js:4187:2827)
    at Object.runObserverEffect [as fn] (polymer_bundled.min.js:1:37568)
    at runEffectsForProperty (polymer_bundled.min.js:1:37087)
    at runEffects (polymer_bundled.min.js:1:36604)
    at ExtensionsErrorPageElement._propertiesChanged (polymer_bundled.min.js:1:52973)
    at ExtensionsErrorPageElement._flushProperties (polymer_bundled.min.js:1:26564)
    at ExtensionsErrorPageElement._flushProperties (polymer_bundled.min.js:1:51737)
    at ExtensionsErrorPageElement._invalidateProperties (polymer_bundled.min.js:1:51534)
    at ExtensionsErrorPageElement._setProperty (polymer_bundled.min.js:1:51459)
    at ExtensionsErrorPageElement.Object.defineProperty.set (polymer_bundled.min.js:1:24863)
onSelectedErrorChanged_ @ extensions.js:4187
runObserverEffect @ polymer_bundled.min.js:1
runEffectsForProperty @ polymer_bundled.min.js:1
runEffects @ polymer_bundled.min.js:1
_propertiesChanged @ polymer_bundled.min.js:1
_flushProperties @ polymer_bundled.min.js:1
_flushProperties @ polymer_bundled.min.js:1
_invalidateProperties @ polymer_bundled.min.js:1
_setProperty @ polymer_bundled.min.js:1
Object.defineProperty.set @ polymer_bundled.min.js:1

我错过了什么?

这是在Chromium版本100.0.4896.75(官方构建)snap(64位)上的情况。


1
你发布的代码与错误无关。顺便说一下,你应该使用 chrome 而不是 browser - wOxxOm
该死,那就是问题所在...告诉我这样奇怪的消息。 - Sharcoux
我会开另一个问题。这可能会帮助做同样错误的人。 - Sharcoux
这是因为如果您想向标签发送消息,则需要在其中运行内容脚本。请参阅https://developer.chrome.com/extensions/messaging。 - wOxxOm
顺便提一下,如果你想给出一个合适的回答,我会接受它。 - Sharcoux
显示剩余3条评论
2个回答

7

我遇到了同样的异常,但原因不同。

所以,我找到了可能的解决方案(如何获取真正的错误信息)。

我在失败的代码行上设置了断点并检查了runtimeError消息。

这对某些人可能很有用。

输入图像说明 输入图像说明


-1
  1. 请删除节点模块或在新文件夹中克隆存储库
  2. 安装节点(npm install)
  3. npx cypress open

它完美地工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接