externally_connectable

类型 Object
必填
Manifest 版本 2 或更高
示例
json
"externally_connectable": {
  "ids": [
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "cccccccccccccccccccccccccccccccc"
  ],
  "matches": [
    "https://example1.com/*",
    "*://*.example2.com/*"
  ]
}

Externally connectable 控制哪些其他扩展和网页可以使用 runtime.connect()runtime.sendMessage() 消息传递与扩展进行通信。如果未指定 externally_connectable,则所有扩展都可以相互通信,但不能与网页通信。

注意: 与网页通信

  • 在 Chrome 中,使用 chrome.runtime.connectchrome.runtime.sendMessage。这些方法仅在至少有一个扩展程序正在侦听消息时可用,有关更多详细信息,请参阅 Chrome 106 中 chrome.runtime 将不再无条件定义
  • 在 Safari 中,使用 browser.runtime.connectbrowser.runtime.sendMessage
  • 在 Firefox 中,不支持这两个 API。请参阅 Firefox bug 1319168

"ids" 属性

ids 允许此扩展程序与指定了扩展程序标识符的其他已安装扩展程序之间进行通信。使用 "*" 模式可与所有扩展程序进行通信。

"matches" 属性

matches 是一个正则表达式列表,允许扩展程序与与该表达式匹配的网页之间进行通信。

注意: 如果未指定 externally_connectable,则允许扩展程序之间的通信,如同 externally_connectable 指定了 {"ids": ["*"] }。因此,如果您指定了 externally_connectable.matches,请不要忘记添加 ids(如果您想与其他扩展程序通信)。

浏览器兼容性