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