有没有办法让后台脚本通知所有当前打开的选项卡(即它们的内容脚本)发生了事件。
基本上类似于以下内容
chrome.tabs.sendMessage("*", {foo: "bar"})
我怀疑我可以在后台脚本上维护一个打开的选项卡列表,如果可能的话,并使用它。但是有没有更简单的方法?
有没有办法让后台脚本通知所有当前打开的选项卡(即它们的内容脚本)发生了事件。
基本上类似于以下内容
chrome.tabs.sendMessage("*", {foo: "bar"})
我怀疑我可以在后台脚本上维护一个打开的选项卡列表,如果可能的话,并使用它。但是有没有更简单的方法?
不支持通配符。访问所有选项卡的唯一方法是查询所有现有选项卡,并使用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);
}
});
取自 Rob W 的示例。这可能会好一点:
chrome.tabs.query({}, (tabs) => tabs.forEach( tab => chrome.tabs.sendMessage(tab.id, message) ) );