相关疑难解决方法(0)

未捕获(承诺)错误:无法建立连接。接收端不存在

关于这个主题有很多悬而未决的问题,但我在我的案例中找不到解释。这是一个最小的测试用例:

这是我的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": "DarkTheme"
  },
  "content_scripts": [
    {
      "matches": [
        "<all_urls>"
      ],
      "js": [
        "dark.js"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

按钮.js

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

黑暗.js

chrome.runtime.onMessage.addListener(request => {
  console.log('received', request)
})
Run Code Online (Sandbox Code Playgroud)

所以,基本上,我的监听器在一开始就设置好了,只有当我按下按钮时我才会发送消息。为什么我按下按钮时会收到此错误消息?

Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist. …
Run Code Online (Sandbox Code Playgroud)

javascript plugins google-chrome google-chrome-extension

21
推荐指数
3
解决办法
5万
查看次数