31

ユーザーが開いているすべてのタブを繰り返し処理してから、特定のHTMLアイテムがあるかどうかを確認するにはどうすればよいid = 'item'ですか?

4

4 に答える 4

71

このメソッドは廃止され、chrome.tabs.query次のようになりました。

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

だから今あなたはしたいと思うでしょう:

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

空のqueryInfoパラメータを渡すと、すべてのタブが返されます。

于 2013-03-07T21:20:43.627 に答える
23

あなたはそれをこのようにすることができます:

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を操作できないことを忘れないでください。したがって、最初のコードスニップはバックグラウンドページ用であり、2番目はコンテンツスクリプト上にある必要があります;)

于 2011-03-23T17:30:17.857 に答える
2

これは非推奨ではないバニラウェイです(2019年5月):

chrome.tabs.query({}, function(tabs){
        tabs.forEach(tb => {
            chrome.tabs.sendMessage(tb.id, { action: "xxx" });
        });
    });
于 2019-05-31T16:32:10.307 に答える
1

chrome.tabs.queryあなたが探している機能です。パラメータをオブジェクトに渡して、タブをフィルタリングできます。あなたの場合、開いているすべてのタブを繰り返し処理する必要があります。探しているコードの2つのバージョンは次のとおりです。

同期

chrome.tabs.query({}, function(tabs) {
  tabs.forEach(function (tab) {
    // do whatever you want with the tab
  });
});

非同期

var tabs = await chrome.tabs.query({});
tabs.forEach(function (tab) {
  // do whatever you want with the tab
});

どちらの場合も、パラメータtabタブです。

于 2021-08-14T21:09:19.180 に答える