Chrome拡張機能:すべてのタブを反復処理しますか?
ユーザーが開いているすべてのタブを繰り返し処理してから、id = 'item'
の特定のHTMLアイテムがあるかどうかを確認するにはどうすればよいですか?
あなたはそれをこのようにすることができます:
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番目はコンテンツスクリプト上にある必要があります;)
このメソッドはchrome.tabs.query
を優先して非推奨になっているようです。
http://developer.chrome.com/extensions/tabs.html#method-query
だから今あなたがしたいでしょう:
chrome.tabs.query({}, function(tabs) { /* blah */ } );
空のqueryInfo
パラメータを渡すと、すべてのタブが返されます。
これは非推奨ではないバニラの方法です(2019年5月):
chrome.tabs.query({}, function(tabs){
tabs.forEach(tb => {
chrome.tabs.sendMessage(tb.id, { action: "xxx" });
});
});