问题描述
我试图找出如何识别(许多)创建的选项卡将消息发送到后台脚本,并认为要走的路是 background.js 中的 sender.tab.id browser.runtime.onMessage.addListener((msg,sender,respF)=>{})
但后来我遇到了 onConnect,它将一个 runtime.Port 对象传递给它的处理程序。它可以用来更优雅地识别哪个标签尝试与背景对话吗?如果不是,那么 onConnect 的意义何在?
解决方法
onConnect
的要点是为您提供一个 state
更改,您可以在其中管理您的 onConnect 逻辑 - 通常是修改您的侦听器。
例如
-
addListener
连接时应处于活动状态 -
removeListener
连接时应禁用 -
hasListener
检查连接的实例是否已经具有该侦听器 - 等。例如另外
onConnectExternal