tabs.query()

指定されたプロパティを持つ全てのタブを取得します。何も指定しない場合、全てのタブを取得します。

この関数は Promise を返す非同期関数です。

構文

var querying = browser.tabs.query(
  queryInfo             // object
)

パラメータ

queryInfo
object. query() 関数はここで指定されたプロパティにマッチするタブだけを取得します。 このプロパティについての詳細は tabs.Tab を参照してください。
active省略可
boolean. 各ウインドウの中でアクティブかどうか。
audible省略可
boolean. 音が鳴っているか。
autoDiscardable省略可
boolean. リソースが少なくなったときにブラウザーによって自動的にdiscardできるか。
cookieStoreId 省略可
string. CookieストアのIDが cookieStoreId なタブのみを返すために使います。このオプションは "cookies" permissionを持つ拡張でのみ使用できます。
currentWindow省略可
boolean. カレントウインドウの中のタブか。
discarded省略可
boolean. タブがdiscardされているか。 discardされたタブはコンテンツがメモリからアンロードされているが、タブの一覧には表示されたままになります。コンテンツはタブが次にアクティブになったときにリロードされます。
highlighted省略可
boolean. ハイライトされているか。
index省略可
integer. ウィンドウの中での位置。
muted省略可
boolean. ミュートされているか。
lastFocusedWindow省略可
boolean. 最後にフォーカスされたウインドウのタブか。
openerTabId省略可
integer. そのタブを開いたタブのID。
pinned省略可
boolean. ピン留めされているか。
status省略可
tabs.TabStatus. ロードが完了しているか。
title省略可
string. ページのタイトル。
url省略可
string もしくは array of string. 1つ以上のマッチパターンにマッチするタブか。フラグメント識別子にはマッチしません。
windowId省略可
integer. そのウインドウのID。カレントウインドウの場合は、 windows.WINDOW_ID_CURRENT
windowType省略可
tabs.WindowType. そのタブの属するウインドウの種類。

戻り値

マッチしたタブの情報を持つ tabs.Tab オブジェクトの array に解決される Promise

エラーが発生した場合、その Promise はエラーメッセージとともに却下されます。

ブラウザ実装状況

BCD tables only load in the browser

全てのタブを取得する例:

function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({});
querying.then(logTabs, onError);

カレントウインドウの全てのタブを取得する例:

function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({currentWindow: true});
querying.then(logTabs, onError);

カレントウインドウのアクティブなタブを取得する例:

function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({currentWindow: true, active: true});
querying.then(logTabs, onError);

"mozilla.org" またはそのサブドメイン下のHTTP/HTTPS URLを開いている全てのタブを取得する例:

function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({url: "*://*.mozilla.org/*"});
querying.then(logTabs, onError);

moz-extension:// URLを開いている全てのタブを取得する例:

function logTabs(tabs) {
  console.log(tabs);
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({url: "moz-extension://*/*"});
querying.then(logTabs, onError);

この拡張機能のURLを開いている全てのタブを取得する例:

function logTabs(tabs) {
  console.log(tabs);
  for (let tab of tabs) {
    // tab.url requires the `tabs` permission
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

var querying = browser.tabs.query({url: browser.extension.getURL("*")});
querying.then(logTabs, onError);

Example extensions

Acknowledgements

この API は Chromium の chrome.tabs APIに基づいています。 This documentation is derived from tabs.json in the Chromium code.

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。