2011-03-23 161 views

回答

14

你可以这样说:

chrome.tabs.getAllInWindow(null, function(tabs){ 
    for (var i = 0; i < tabs.length; i++) { 
    chrome.tabs.sendRequest(tabs[i].id, { action: "xxx" });       
    } 
}); 

后您的项目后看,如果你可以把它像这样:

document.getElementById('item') 

不要忘记,你不能通过使用“背景页面”来操纵HTML所以第一个代码片段用于背景页面,第二个代码片段必须位于内容脚本上;)

+0

唉唉,你打我吧:P – 2011-03-23 17:31:50

+0

您可能要添加检查,他可以发送的document.getElementById(“项目”)= null,并且保存的元素!在某处并检索它以确定页面上是否存在该元素。 – 2011-03-23 17:32:55

+0

对不起老兄... ^^ – Sindar 2011-03-23 17:33:33

45

看起来此方法已被弃用,以支持chrome.tabs.query

http://developer.chrome.com/extensions/tabs.html#method-query

所以,现在你想做的事:

chrome.tabs.query({}, function(tabs) { /* blah */ }); 

传递空queryInfo参数将返回所有选项卡。

+2

但这是如何遍历选项卡?是否有'tabs'的长度方法?大多数API方法只需要一个tab或tab属性,所以你需要用像'tabs [0] ... tabs [n]'这样的变量来索引它们。如何获得n? – jiggunjer 2016-02-07 09:05:58

+0

@jiggunjer,n = tabs.length,tabs - 是一个数组 – 2016-07-02 08:54:32

+0

@Golden,如果你把第一个参数设为'null'而不是'{}'会发生什么? – Pacerier 2017-07-26 12:00:01

0

我用这一个

chrome.tabs.getAllInWindow(null, function(tabs) { 
     $.each(tabs, function() { 
     // u can use 'this.id' to work with evey tab 
     }); 
}); 
相关问题