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

标签 javascript google-chrome google-chrome-extension

如果 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/

相关文章:

javascript - 无法安装 Angular JS 2,为什么?

Javascript:Onclick 事件在 IE 中不起作用

javascript - Chrome 中的慢 cors 预检选项请求

javascript - 为任意长度的文本调用 chrome.tts.speak 函数

google-chrome - 如何确定是否安装了特定的 Chrome 浏览器扩展,与扩展提供程序无关

google-chrome-extension - 如何从浏览器设置 React 组件状态和 props

javascript - 如何动态获取对象的嵌套属性?

javascript - jQuery 插入元素并覆盖

javascript - 通过自定义 Cordova 方案获得安全来源

google-chrome - Chrome DevTools - 时间选项卡中的 'Queueing' 是什么意思?