Chrome-Extension: iterate through all tabs?

2019-03-14 08:59发布

How would I iterate through all tabs a user has open and then check if they have a particular HTML item with id = 'item'?

3条回答
祖国的老花朵
2楼-- · 2019-03-14 09:46

You can make it like this :

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

After that to look after your item, if you can make it like this :

document.getElementById('item')

Don't forget that you can't manipulate the HTML by using the "background page" So the first code snip is for the background page, and the second have to be on a content script ;)

查看更多
我命由我不由天
3楼-- · 2019-03-14 09:56

It appears this method has been deprecated in favor of chrome.tabs.query:

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

So now you'd want to do:

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

Passing an empty queryInfo parameter would return all of the tabs.

查看更多
Rolldiameter
4楼-- · 2019-03-14 10:01

I use this one

chrome.tabs.getAllInWindow(null, function(tabs) {
      $.each(tabs, function() {
        // u can use 'this.id' to work with evey tab 
      });
});
查看更多
登录 后发表回答