【问题标题】:Chrome extension: Send message from background script to *all* tabsChrome 扩展:将消息从后台脚本发送到*所有*选项卡
【发布时间】:2013-04-16 20:35:55
【问题描述】:

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

基本上是这样的

chrome.tabs.sendMessage("*", {foo: "bar"})

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

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    不支持通配符。访问所有标签的唯一方法是query所有现有标签,并使用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);
        }
    });
    

    【讨论】:

      【解决方案2】:

      取自 Rob W 的示例。这可能会好一点:

      chrome.tabs.query({}, (tabs) => tabs.forEach( tab => chrome.tabs.sendMessage(tab.id, message) ) );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-27
        • 2014-11-27
        • 1970-01-01
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多