如果 url 是 test.com,我将从内容脚本中打开与背景的长期连接。我正在使用 chrome.runtime.connect。但是,如果我使用 test.com 打开多个选项卡,我会从后台脚本收到多个 onMessage 调用。
问题是内容脚本不与多个选项卡共享,但端口是怎么来的?
最佳答案
这是设计使然,因为如果您没有调用 runtime.Port.disconnect
,则每次您使用 test.com< 打开新选项卡时,都会保持之前的连接。/code>,您的内容脚本已加载并开始建立另一个长期连接。
您可以在创建新选项卡时调用runtime.Port.disconnect
来切断当前连接,也可以通过Port
来区分不同的连接,您可以访问<runtime.onConnect.addListener(function(port){});
上的 code>port.MessageSender,其中包含 tab
作为发送者的唯一信息。
关于javascript - chrome 扩展多个选项卡和 chrome.runtime.connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36462763/