Javascript chrome扩展多个选项卡和chrome.runtime.connect

Javascript chrome扩展多个选项卡和chrome.runtime.connect,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,如果url是test.com,我将从内容脚本打开与后台的长期连接。我正在使用chrome.runtime.connect。但是如果我用test.com打开多个选项卡,我会从后台脚本收到多个onMessage调用 问题是,内容脚本没有与多个选项卡共享,但是端口是如何共享的?这是出于设计考虑,因为如果您没有调用runtime.Port.disconnect,那么以前的连接将得到维护,并且每次使用test.com打开新选项卡时,您的内容脚本已加载并开始建立另一个长期连接 您可以在创建新选项卡时调用ru

如果url是test.com,我将从内容脚本打开与后台的长期连接。我正在使用chrome.runtime.connect。但是如果我用test.com打开多个选项卡,我会从后台脚本收到多个onMessage调用


问题是,内容脚本没有与多个选项卡共享,但是端口是如何共享的?

这是出于设计考虑,因为如果您没有调用
runtime.Port.disconnect
,那么以前的连接将得到维护,并且每次使用
test.com
打开新选项卡时,您的内容脚本已加载并开始建立另一个长期连接


您可以在创建新选项卡时调用
runtime.Port.disconnect
来切断当前连接,或者您可以通过
Port
来区分不同的连接,您可以访问
runtime.onConnect.addListener(函数(端口){}上的
Port.MessageSender
,它包含
选项卡
,作为发送方的唯一信息。

啊,所以这不是内容脚本,而是端口连接。所以,如果我打开了两个选项卡和两个端口连接,那么从后台到每个端口的任何请求都将是两次。因此,每个标签将收到2个请求,正确的?@ PVNURLA,确切地说,只要连接没有终止。@ PVNURLA,NP,如果我的答案有所帮助,请考虑,谢谢,耽搁了。谢谢你召回我。再次感谢你的帮助。