Chrome扩展程序:将消息从后台脚本发送到*all*标签

Him*_*u P 21 google-chrome-extension

有没有办法让后台脚本通知所有当前打开的选项卡(即其内容脚本)发生了事件.

基本上像以下一样

chrome.tabs.sendMessage("*", {foo: "bar"})
Run Code Online (Sandbox Code Playgroud)

我怀疑我可以在后台脚本上维护一个打开的选项卡列表,如果可能的话,并使用它.但是有更简单的方法吗?

Rob*_*b W 53

不支持通配符.到达所有选项卡的唯一方法是查询所有现有选项卡,然后使用分发消息chrome.tabs.sendMessage.

chrome.tabs.query({}, function(tabs) {
    var message = {foo: bar};
    for (var i=0; i<tabs.length; ++i) {
        chrome.tabs.sendMessage(tabs[i].id, message);
    }
});
Run Code Online (Sandbox Code Playgroud)