从 Service Worker 向弹出窗口发送消息

pfd*_*int 5 google-chrome-extension chrome-extension-manifest-v3

Service Worker 如何使用 sendMessage 与弹出窗口中运行的脚本进行通信?

在清单 v3 中:

  • 内容脚本使用 chrome.runtime.sendMessage 与 Service Worker 对话。
  • Service Worker 使用 chrome.tabs.sendMessage 与内容脚本对话。
  • 内容脚本使用 chrome.runtime.sendMessage 与 popup.html 的 popup.js 对话
  • popup.js 使用 chrome.tabs.sendMessage 与内容脚本对话。
  • popup.js 使用 chrome.runtime.sendMessage 与 Service Worker 对话。

在这个三角形中,唯一缺少的边是 popup.js 和 Service Worker 之间。

Service Worker 如何向 popup.js 发送消息?

但使用 chrome.runtime.sendMessage 会导致“无法建立连接。接收端不存在”。

并且使用 chrome.tabs.sendMessage 需要 chrome.tabs.query,它似乎根本不返回 popup.html。