1. はじめ
Google Chrome 拡張機能は、ユーザーエクスペリエンスを向上させるために様々な機能を提供しています。本記事では、タブに関連する情報を取得したり、タブのプロパティを更新したりするための主要な API メソッドである chrome.tabs.query
と chrome.tabs.update
に焦点を当てます。
2. chrome.tabs.query
メソッド
chrome.tabs.query
メソッドは、Chrome 拡張機能内でタブに関する情報を取得するための重要な API メソッドの一つです。このメソッドは、指定された条件に一致するタブを取得し、それに基づいて処理を行います。chrome.tabs.query
メソッドの基本的な使い方は以下の通りです。
// 構文
chrome.tabs.query(queryInfo, callback);
queryInfo
: タブを取得する条件を指定するオブジェクト。active
: タブがアクティブかどうかを指定します。true ならアクティブなタブのみを取得します。audible
: タブが音声を再生しているかどうかを指定します。true なら音声を再生しているタブのみautoDiscardable
: タブが自動的に破棄されるかどうかを指定します。true なら自動的に破棄されるタブのみcurrentWindow
: 現在のウィンドウ内のタブのみを対象にするかどうかを指定します。discarded
: タブが破棄されているかどうかを指定します。true なら破棄されたタブのみgroupId
: タブが属するグループの ID を指定します。highlighted
: タブがハイライトされているかどうかを指定します。true ならハイライトされたタブのみindex
: タブのインデックスを指定します。muted
: タブがミュートされているかどうかを指定します。true ならミュートされたタブのみpinned
: タブがピン留めされているかどうかを指定します。true ならピン留めされたタブのみstatus
: タブの読み込み状態に基づいて取得します(“loading”、“complete” など)。title
: タブのタイトルに一致するタブを取得します。url
: 特定の URL に一致するタブを取得します。windowId
: タブが存在するウィンドウの ID を指定します。windowType
: タブが属するウィンドウの種類を指定します。
callback
: クエリが完了した後に呼び出されるコールバック関数。
chrome.tabs.query({ currentWindow: true }, function (tabs) {
console.log(tabs);
});
上記の例では、currentWindow: true
を指定してアクティブなウィンドウ内のすべてのタブを取得しています。
tabs
には取得したタブが配列として格納され、それに対して必要な操作を行うことができます。
3. chrome.tabs.update
メソッド
chrome.tabs.update
メソッドは、指定されたタブのプロパティを更新するための Chrome 拡張機能の API メソッドです。このメソッドを使用することで、タブの URL やピン留めの状態、ミュート状態などを変更することが可能です。
chrome.tabs.update
メソッドの基本的な使い方以下の通りです。
chrome.tabs.update(tabId, updateProperties, callback);
tabId
: 更新したいタブの ID。(オプション)updateProperties
: 更新するプロパティを指定するオブジェクト。active
: タブをアクティブにするかどうかを指定します。autoDiscardable
: タブが自動的に破棄されるかどうかを指定します。highlighted
: タブをハイライトするかどうかを指定します。muted
: タブをミュートするかどうかを指定します。openerTabId
: タブを開いたタブの ID を指定します。pinned
: タブをピン留めするかどうかを指定します。selected
: タブを選択するかどうかを指定します。url
: タブの新しい URL を指定します。
callback
: 更新が完了した後に呼び出されるコールバック関数。
// アクティブなウィンドウ内のすべてのタブをミュートにする例
chrome.tabs.query({ currentWindow: true }, function (tabs) {
tabs.forEach(function (tab) {
chrome.tabs.update(tab.id, { muted: true });
});
});
上記例では、アクティブなウィンドウ内のすべてのタブをミュートに変更しています。chrome.tabs.query
でアクティブなウィンドウ内のタブを取得し、chrome.tabs.update
で各タブのミュート状態を変更しています。
4. 参照
chrome.tabs | API | Chrome for Developers
chrome.tabs | API | Chrome for Developers