chrome.tabs

説明

chrome.tabs API を使用して、ブラウザのタブシステムを操作します。この API を使用すると、ブラウザのタブを作成、変更、並べ替えることができます。

Tabs API には、タブの操作と管理のための機能だけでなく、タブの言語の検出、スクリーンショットの撮影、タブのコンテンツ スクリプトとの通信も可能です。

権限

ほとんどの機能を使用するのに権限は必要ありません。たとえば、新しいタブの作成、タブの再読み込み、別の URL へのナビゲーションなどです。

Tabs API を使用する際に、デベロッパーが注意すべき権限は 3 つあります。

「タブ」権限

この権限では、chrome.tabs 名前空間へのアクセス権は付与されません。代わりに、tabs.Tab インスタンスの 4 つの機密性の高いプロパティ(urlpendingUrltitlefavIconUrl)に対して tabs.query() を呼び出す権限を拡張機能に付与します。

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
ホスト権限

ホストの権限により、拡張機能は一致するタブの 4 つの機密性の高い tabs.Tab プロパティを読み取り、クエリできます。tabs.captureVisibleTab()tabs.executeScript()tabs.insertCSS()tabs.removeCSS() などのメソッドを使用して、一致するタブを直接操作することもできます。

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
「activeTab」権限

activeTab は、ユーザーの呼び出しに応答して、拡張機能に現在のタブの一時的なホスト権限を付与します。ホストの権限とは異なり、activeTab では警告はトリガーされません。

{
  "name": "My extension",
  ...
  "permissions": [
    "activeTab"
  ],
  ...
}

ユースケース

以降のセクションでは、一般的なユースケースについて説明します。

拡張機能のページを新しいタブで開く

拡張機能の一般的なパターンは、拡張機能がインストールされたときにオンボーディング ページを新しいタブで開くことです。次の例は、その方法を示しています。

background.js:

chrome.runtime.onInstalled.addListener(({reason}) => {
  if (reason === 'install') {
    chrome.tabs.create({
      url: "onboarding.html"
    });
  }
});

現在のタブを取得する

この例は、拡張機能のサービス ワーカーが、現在フォーカスされているウィンドウ(フォーカスされている Chrome ウィンドウがない場合は、最後にフォーカスされたウィンドウ)からアクティブなタブを取得する方法を示しています。通常、これはユーザーの現在のタブと考えることができます。

  async function getCurrentTab() {
    let queryOptions = { active: true, lastFocusedWindow: true };
    // `tab` will either be a `tabs.Tab` instance or `undefined`.
    let [tab] = await chrome.tabs.query(queryOptions);
    return tab;
  }

  function getCurrentTab(callback) {
    let queryOptions = { active: true, lastFocusedWindow: true };
    chrome.tabs.query(queryOptions, ([tab]) => {
      if (chrome.runtime.lastError)
      console.error(chrome.runtime.lastError);
      // `tab` will either be a `tabs.Tab` instance or `undefined`.
      callback(tab);
    });
  }

指定したタブをミュートする

この例は、拡張機能で特定のタブのミュート状態を切り替える方法を示しています。

  async function toggleMuteState(tabId) {
    const tab = await chrome.tabs.get(tabId);
    const muted = !tab.mutedInfo.muted;
    await chrome.tabs.update(tabId, {muted});
    console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
  }

  function toggleMuteState(tabId) {
    chrome.tabs.get(tabId, async (tab) => {
      let muted = !tab.mutedInfo.muted;
      await chrome.tabs.update(tabId, { muted });
      console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
    });
  }

クリックしたときに現在のタブを最初の位置に移動する

この例は、ドラッグが進行中かどうかにかかわらず、タブを移動する方法を示しています。この例では chrome.tabs.move を使用していますが、ドラッグ中にタブを変更する他の呼び出しにも同じ待機パターンを使用できます。

  chrome.tabs.onActivated.addListener(moveToFirstPosition);

  async function moveToFirstPosition(activeInfo) {
    try {
      await chrome.tabs.move(activeInfo.tabId, {index: 0});
      console.log("Success.");
    } catch (error) {
      if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
        setTimeout(() => moveToFirstPosition(activeInfo), 50);
      } else {
        console.error(error);
      }
    }
  }

  chrome.tabs.onActivated.addListener(moveToFirstPositionMV2);

  function moveToFirstPositionMV2(activeInfo) {
    chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => {
      if (chrome.runtime.lastError) {
        const error = chrome.runtime.lastError;
        if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
          setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
        } else {
          console.error(error);
        }
      } else {
        console.log("Success.");
      }
    });
  }

選択したタブのコンテンツ スクリプトにメッセージを渡す

この例は、拡張機能のサービス ワーカーが tabs.sendMessage() を使用して特定のブラウザタブのコンテンツ スクリプトと通信する方法を示しています。

function sendMessageToActiveTab(message) {
  const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
  const response = await chrome.tabs.sendMessage(tab.id, message);
  // TODO: Do something with the response.
}

拡張機能の例

Tabs API 拡張機能のデモについては、以下をご覧ください。

MutedInfo

Chrome 46 以降

タブのミュート状態と、最後に状態が変更された理由。

プロパティ

  • extensionId

    文字列 省略可

    ミュート状態を変更した拡張機能の ID。ミュート状態が最後に変更された理由が拡張機能ではない場合、設定されません。

  • ミュート中

    ブール値

    タブがミュートされている(音声が再生されていない)かどうか。タブが再生されていない場合や、現在音声を再生していない場合でも、ミュートされていることがあります。「ミュート」音声インジケーターが表示されているかどうかと同じです。

  • reason

    MutedInfoReason(ミュート情報の理由)省略可

    タブがミュートまたはミュート解除された理由。タブのミュート状態が変更されていない場合は設定されません。

MutedInfoReason

Chrome 46 以降

ミュート状態の変更をトリガーしたイベント。

列挙型

「user」
ユーザー入力アクションによってミュート状態が設定されました。

「キャプチャ」
タブのキャプチャが開始され、ミュート状態が強制的に変更されました。

「extension」
extensionId フィールドで識別される拡張機能が、ミュート状態を設定します。

Tab

プロパティ

  • アクティブ

    ブール値

    タブがウィンドウ内でアクティブかどうか。ウィンドウがフォーカスされていることを意味するわけではありません。

  • Audible

    ブール値(省略可)

    Chrome 45 以降

    タブから過去数秒間に音声が聞こえたかどうか(ミュートされている場合は聞こえないことがあります)。[スピーカー音声] インジケーターが表示されているかどうかと同じです。

  • autoDiscardable

    ブール値

    Chrome 54 以降

    リソースが不足しているときに、タブをブラウザによって自動的に破棄できるかどうか。

  • 破棄されました

    ブール値

    Chrome 54 以降

    タブが破棄されるかどうか。破棄されたタブとは、コンテンツがメモリからアンロードされたものの、タブバーには引き続き表示されているタブのことです。次回アクティブになったときにコンテンツが再読み込みされます。

  • favIconUrl

    文字列 省略可

    タブのファビコンの URL。このプロパティは、拡張機能のマニフェストに "tabs" 権限が含まれている場合にのみ存在します。タブが読み込み中の場合は、空の文字列になることもあります。

  • 凍結

    ブール値

    保留中

    タブがフリーズしているかどうか。フリーズされたタブでは、イベント ハンドラやタイマーなどのタスクを実行できません。タブバーに表示され、そのコンテンツはメモリに読み込まれます。有効化すると凍結が解除されます。

  • groupId

    数値

    Chrome 88 以降

    タブが属するグループの ID。

  • height

    number(省略可)

    タブの高さ(ピクセル単位)。

  • 強調表示

    ブール値

    タブがハイライト表示されているかどうか。

  • id

    number(省略可)

    タブの ID。タブ ID はブラウザ セッション内で一意です。状況によっては、タブに ID が割り当てられない場合があります。たとえば、sessions API を使用して外部タブをクエリする場合は、セッション ID が存在する場合があります。タブ ID は、アプリとデベロッパー ツール ウィンドウで chrome.tabs.TAB_ID_NONE に設定することもできます。

  • シークレット

    ブール値

    タブがシークレット ウィンドウにあるかどうか。

  • index

    数値

    ウィンドウ内のタブのゼロベースのインデックス。

  • lastAccessed

    数値

    Chrome 121 以降

    タブが最後にアクセスされた時刻(エポックからのミリ秒数)。

  • mutedInfo

    MutedInfo(省略可)

    Chrome 46 以降

    タブのミュート状態と、最後に状態が変更された理由。

  • openerTabId

    number(省略可)

    このタブを開いたタブの ID(存在する場合)。このプロパティは、開いたタブがまだ存在する場合にのみ存在します。

  • pendingUrl

    文字列 省略可

    Chrome 79 以降

    タブが移動する URL(commit 前)。このプロパティは、拡張機能のマニフェストに "tabs" 権限が含まれていて、保留中のナビゲーションがある場合にのみ存在します。

  • 固定中

    ブール値

    タブが固定されているかどうか。

  • 選択済み

    ブール値

    非推奨

    tabs.Tab.highlighted を使用してください。

    タブが選択されているかどうか。

  • sessionId

    文字列 省略可

    sessions API から取得したタブを一意に識別するために使用されるセッション ID。

  • status

    TabStatus 省略可

    タブの読み込みステータス。

  • title

    文字列 省略可

    タブのタイトル。このプロパティは、拡張機能のマニフェストに "tabs" 権限が含まれている場合にのみ存在します。

  • URL

    文字列 省略可

    タブのメインフレームの最後に commit された URL。このプロパティは、拡張機能のマニフェストに "tabs" 権限が含まれている場合にのみ存在し、タブがまだ commit されていない場合は空の文字列になることがあります。Tab.pendingUrl もご覧ください。

  • number(省略可)

    タブの幅(ピクセル単位)。

  • windowId

    数値

    タブを含むウィンドウの ID。

TabStatus

Chrome 44 以降

タブの読み込みステータス。

列挙型

「unloaded」

「読み込み中」

「complete」

WindowType

Chrome 44 以降

ウィンドウのタイプ。

列挙型

「normal」

「popup」

「パネル」

「app」

「devtools」

ZoomSettings

タブ内のズーム変更の処理方法とそのスコープを定義します。

プロパティ

  • defaultZoomFactor

    number(省略可)

    Chrome 43 以降

    tabs.getZoomSettings の呼び出しで、現在のタブのデフォルトのズームレベルを返すために使用されます。

  • モード

    ZoomSettingsMode 省略可

    ズームの変更を処理する方法(ページの実際のスケーリングを担当するエンティティ)を定義します。デフォルトは automatic です。

  • スコープ

    ZoomSettingsScope(省略可)

    ズームの変更をページのオリジンに保持するか、このタブでのみ有効にするかを定義します。デフォルトは、automatic モードの場合は per-origin、それ以外の場合は per-tab です。

ZoomSettingsMode

Chrome 44 以降

ズームの変更を処理する方法(ページの実際のスケーリングを担当するエンティティ)を定義します。デフォルトは automatic です。

列挙型

「自動」
ズームの変更はブラウザによって自動的に処理されます。

「manual」
ズーム変更の自動処理をオーバーライドします。onZoomChange イベントは引き続きディスパッチされます。このイベントをリッスンしてページを手動でスケーリングするのは拡張機能の責任です。このモードでは per-origin ズームがサポートされていないため、scope ズーム設定は無視され、per-tab が想定されます。

「disabled」
タブ内のすべてのズームを無効にします。タブはデフォルトのズームレベルに戻り、ズームの変更はすべて無視されます。

ZoomSettingsScope

Chrome 44 以降

ズームの変更をページのオリジンに保持するか、このタブでのみ有効にするかを定義します。デフォルトは、automatic モードの場合は per-origin、それ以外の場合は per-tab です。

列挙型

「オリジンごと」
ズームの変更は、ズームされたページのオリジンで保持されます。つまり、同じオリジンに移動した他のすべてのタブもズームされます。さらに、per-origin のズーム変更はオリジンとともに保存されます。つまり、同じオリジンの他のページに移動すると、すべて同じズーム倍率にズームされます。per-origin スコープは automatic モードでのみ使用できます。

「タブごと」
ズームの変更はこのタブでのみ有効になり、他のタブのズームの変更はこのタブのズームには影響しません。また、per-tab のズーム変更はナビゲーション時にリセットされます。タブを移動すると、常に per-origin のズーム係数でページが読み込まれます。

プロパティ

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

Chrome 92 以降

1 秒あたりに captureVisibleTab を呼び出せる最大回数。captureVisibleTab はコストが高いため、頻繁に呼び出すことは避けてください。

2

TAB_ID_NONE

Chrome 46 以降

ブラウザタブがないことを示す ID。

-1

TAB_INDEX_NONE

Chrome 123 以降

tab_strip にタブインデックスがないことを示すインデックス。

-1

メソッド

captureVisibleTab()

Promise
chrome.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
  callback?: function,
)

指定したウィンドウで現在アクティブなタブの表示領域をキャプチャします。このメソッドを呼び出すには、拡張機能に <all_urls> 権限または activeTab 権限が必要です。この方法では、拡張機能が通常アクセスできるサイトに加えて、chrome:- スキーマ ページ、他の拡張機能のページ、data: URL など、通常は制限されている機密性の高いサイトをキャプチャできます。これらの機密性の高いサイトは、activeTab 権限でのみキャプチャできます。ファイルの URL を取得できるのは、拡張機能にファイルへのアクセス権が付与されている場合のみです。

パラメータ

  • windowId

    number(省略可)

    ターゲット ウィンドウ。デフォルトは現在のウィンドウです。

  • オプション

    ImageDetails 省略可

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (dataUrl: string) => void

    • dataUrl

      文字列

      キャプチャされたタブの表示領域の画像をエンコードしたデータ URL。表示用に HTML img 要素の「src」プロパティに割り当てることができます。

戻り値

  • Promise<string>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

connect()

chrome.tabs.connect(
  tabId: number,
  connectInfo?: object,
)

指定したタブのコンテンツ スクリプトに接続します。runtime.onConnect イベントは、現在の拡張機能の指定されたタブで実行されている各コンテンツ スクリプトで発生します。詳しくは、コンテンツ スクリプト メッセージをご覧ください。

パラメータ

  • tabId

    数値

  • connectInfo

    オブジェクト(省略可)

    • documentId

      文字列 省略可

      Chrome 106 以降

      タブ内のすべてのフレームではなく、documentId で識別される特定のドキュメントへのポートを開きます。

    • frameId

      number(省略可)

      タブ内のすべてのフレームではなく、frameId で識別される特定のフレームへのポートを開きます。

    • name

      文字列 省略可

      接続イベントをリッスンしているコンテンツ スクリプトの onConnect に渡されます。

戻り値

  • 指定したタブで実行されているコンテンツ スクリプトと通信するために使用できるポート。タブが閉じられた場合、またはタブが存在しない場合、ポートの runtime.Port イベントがトリガーされます。

create()

Promise
chrome.tabs.create(
  createProperties: object,
  callback?: function,
)

新しいタブを作成します。

パラメータ

  • createProperties

    オブジェクト

    • アクティブ

      ブール値(省略可)

      タブをウィンドウ内のアクティブなタブにするかどうか。ウィンドウがフォーカスされるかどうかには影響しません(windows.update を参照)。デフォルトは true です。

    • index

      number(省略可)

      タブがウィンドウ内で占める位置。指定された値は、ウィンドウ内のタブの数とゼロの間でクリンプされます。

    • openerTabId

      number(省略可)

      このタブを開いたタブの ID。指定する場合、開いたタブは新しく作成されたタブと同じウィンドウに存在する必要があります。

    • 固定中

      ブール値(省略可)

      タブを固定するかどうか。デフォルトは false です

    • 選択済み

      ブール値(省略可)

      非推奨

      active を使用してください。

      タブをウィンドウで選択したタブにするかどうか。デフォルトは true です

    • URL

      文字列 省略可

      タブを最初に移動する URL。完全修飾 URL にはスキーム('http://www.google.com' ではなく 'www.google.com' です)。相対 URL は、拡張機能内の現在のページを基準としています。デフォルトは [新しいタブ] ページです。

    • windowId

      number(省略可)

      新しいタブを作成するウィンドウ。デフォルトは現在のウィンドウです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab: Tab) => void

    • タブ

      作成したタブ。

戻り値

  • Promise<タブ>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

detectLanguage()

Promise
chrome.tabs.detectLanguage(
  tabId?: number,
  callback?: function,
)

タブ内のコンテンツの主要言語を検出します。

パラメータ

  • tabId

    number(省略可)

    デフォルトは、現在のウィンドウのアクティブなタブです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (language: string) => void

    • language

      文字列

      ISO 言語コード(enfr など)。このメソッドでサポートされている言語の一覧については、kLanguageInfoTable をご覧ください。2 番目から 4 番目の列がチェックされ、最初の NULL 以外の値が返されます(簡体字中国語の場合は zh-CN が返されます)。不明な言語または未定義の言語の場合は、und が返されます。

戻り値

  • Promise<string>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

discard()

Promise Chrome 54 以降
chrome.tabs.discard(
  tabId?: number,
  callback?: function,
)

タブをメモリから破棄します。破棄されたタブはタブバーに引き続き表示され、アクティブにすると再読み込みされます。

パラメータ

  • tabId

    number(省略可)

    破棄するタブの ID。指定した場合、タブはアクティブであるか、すでに破棄されていない限り破棄されます。省略した場合、ブラウザは最も重要度の低いタブを破棄します。破棄可能なタブが存在しない場合、この処理は失敗することがあります。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab?: Tab) => void

    • タブ

      タブ 省略可

      破棄されたタブ(破棄が正常に完了した場合)。破棄が失敗した場合は未定義です。

戻り値

  • Promise<Tab | undefined>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

duplicate()

Promise
chrome.tabs.duplicate(
  tabId: number,
  callback?: function,
)

タブを複製します。

パラメータ

  • tabId

    数値

    複製するタブの ID。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab?: Tab) => void

    • タブ

      タブ 省略可

      重複するタブの詳細。"tabs" 権限がリクエストされていない場合、tabs.Tab オブジェクトには urlpendingUrltitlefavIconUrl が含まれません。

戻り値

  • Promise<Tab | undefined>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

get()

Promise
chrome.tabs.get(
  tabId: number,
  callback?: function,
)

指定されたタブの詳細を取得します。

パラメータ

  • tabId

    数値

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab: Tab) => void

戻り値

  • Promise<タブ>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getCurrent()

Promise
chrome.tabs.getCurrent(
  callback?: function,
)

このスクリプト呼び出しが行われているタブを取得します。タブ以外のコンテキスト(バックグラウンド ページやポップアップ ビューなど)から呼び出された場合は undefined を返します。

パラメータ

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab?: Tab) => void

戻り値

  • Promise<Tab | undefined>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getZoom()

Promise
chrome.tabs.getZoom(
  tabId?: number,
  callback?: function,
)

指定されたタブの現在のズーム倍率を取得します。

パラメータ

  • tabId

    number(省略可)

    現在のズーム倍率を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (zoomFactor: number) => void

    • zoomFactor

      数値

      タブの現在のズーム倍率。

戻り値

  • Promise<number>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

getZoomSettings()

Promise
chrome.tabs.getZoomSettings(
  tabId?: number,
  callback?: function,
)

指定したタブの現在のズーム設定を取得します。

パラメータ

  • tabId

    number(省略可)

    現在のズーム設定を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (zoomSettings: ZoomSettings) => void

    • zoomSettings

      タブの現在のズーム設定。

戻り値

  • Promise<ZoomSettings>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

goBack()

Promise Chrome 72 以降
chrome.tabs.goBack(
  tabId?: number,
  callback?: function,
)

前のページに戻る(ある場合)。

パラメータ

  • tabId

    number(省略可)

    戻る先のタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

goForward()

Promise Chrome 72 以降
chrome.tabs.goForward(
  tabId?: number,
  callback?: function,
)

次のページがある場合は、そのページに移動します。

パラメータ

  • tabId

    number(省略可)

    前方に移動するタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

group()

Promise Chrome 88 以降
chrome.tabs.group(
  options: object,
  callback?: function,
)

指定したグループに 1 つ以上のタブを追加します。グループを指定しない場合は、指定したタブを新しく作成したグループに追加します。

パラメータ

  • オプション

    オブジェクト

    • createProperties

      オブジェクト(省略可)

      グループを作成する構成。groupId がすでに指定されている場合は使用できません。

      • windowId

        number(省略可)

        新しいグループのウィンドウ。デフォルトは現在のウィンドウです。

    • groupId

      number(省略可)

      タブを追加するグループの ID。指定しなかった場合は、新しいグループが作成されます。

    • tabIds

      数値 | [数値, ...数値 []]

      指定したグループに追加するタブ ID またはタブ ID のリスト。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (groupId: number) => void

    • groupId

      数値

      タブが追加されたグループの ID。

戻り値

  • Promise<number>

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

highlight()

Promise
chrome.tabs.highlight(
  highlightInfo: object,
  callback?: function,
)

指定したタブをハイライト表示し、グループの最初のタブにフォーカスを設定します。指定したタブが現在アクティブな場合、何もしないようです。

パラメータ

  • highlightInfo

    オブジェクト

    • タブ

      number | number[]

      ハイライト表示するタブ番号を 1 つ以上指定します。

    • windowId

      number(省略可)

      タブを含むウィンドウ。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (window: Window) => void

    • タブがハイライト表示されたウィンドウの詳細が含まれます。

戻り値

  • Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

move()

Promise
chrome.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
  callback?: function,
)

1 つ以上のタブをウィンドウ内の新しい位置に移動するか、新しいウィンドウに移動します。タブを移動できるのは、通常のウィンドウ(window.type === "normal")との間でのみです。

パラメータ

  • tabIds

    number | number[]

    移動するタブ ID またはタブ ID のリスト。

  • moveProperties

    オブジェクト

    • index

      数値

      ウィンドウを移動する位置。-1 を使用して、タブをウィンドウの最後に配置します。

    • windowId

      number(省略可)

      デフォルトは、タブが現在表示されているウィンドウです。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tabs: Tab | Tab[]) => void

    • タブ

      Tab | Tab[]

      移動されたタブの詳細。

戻り値

  • Promise<タブ | タブ[]>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

query()

Promise
chrome.tabs.query(
  queryInfo: object,
  callback?: function,
)

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

パラメータ

  • queryInfo

    オブジェクト

    • アクティブ

      ブール値(省略可)

      タブがウィンドウ内でアクティブかどうか。

    • Audible

      ブール値(省略可)

      Chrome 45 以降

      タブが聞こえるかどうか。

    • autoDiscardable

      ブール値(省略可)

      Chrome 54 以降

      リソースが不足しているときに、タブをブラウザによって自動的に破棄できるかどうか。

    • currentWindow

      ブール値(省略可)

      タブが現在のウィンドウにあるかどうか。

    • 破棄されました

      ブール値(省略可)

      Chrome 54 以降

      タブを破棄するかどうか。破棄されたタブとは、コンテンツがメモリからアンロードされたものの、タブバーには引き続き表示されているタブのことです。次回アクティブになったときにコンテンツが再読み込みされます。

    • 凍結

      ブール値(省略可)

      保留中

      タブが固定されているかどうか。フリーズされたタブでは、イベント ハンドラやタイマーなどのタスクを実行できません。タブバーに表示され、そのコンテンツはメモリに読み込まれます。有効化すると凍結が解除されます。

    • groupId

      number(省略可)

      Chrome 88 以降

      タブが属するグループの ID。グループ化されていないタブの場合は tabGroups.TAB_GROUP_ID_NONE

    • 強調表示

      ブール値(省略可)

      タブをハイライト表示するかどうか。

    • index

      number(省略可)

      ウィンドウ内のタブの位置。

    • lastFocusedWindow

      ブール値(省略可)

      タブが最後にフォーカスされたウィンドウにあるかどうか。

    • ミュート中

      ブール値(省略可)

      Chrome 45 以降

      タブがミュートされているかどうか。

    • 固定中

      ブール値(省略可)

      タブが固定されているかどうか。

    • status

      TabStatus 省略可

      タブの読み込みステータス。

    • title

      文字列 省略可

      ページのタイトルをパターンと照合します。拡張機能に "tabs" 権限がない場合、このプロパティは無視されます。

    • URL

      文字列 | 文字列の配列(省略可)

      タブを 1 つ以上のURL パターンと照合します。フラグメント識別子が一致しません。拡張機能に "tabs" 権限がない場合、このプロパティは無視されます。

    • windowId

      number(省略可)

      親ウィンドウの ID。現在のウィンドウの場合は windows.WINDOW_ID_CURRENT です。

    • windowType

      WindowType 省略可

      タブが配置されているウィンドウのタイプ。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: Tab[]) => void

    • 件の結果

      Tab[]

戻り値

  • Promise<Tab[]>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

reload()

Promise
chrome.tabs.reload(
  tabId?: number,
  reloadProperties?: object,
  callback?: function,
)

タブを再読み込みします。

パラメータ

  • tabId

    number(省略可)

    再読み込みするタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。

  • reloadProperties

    オブジェクト(省略可)

    • bypassCache

      ブール値(省略可)

      ローカル キャッシュをバイパスするかどうか。デフォルトは false です。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

remove()

Promise
chrome.tabs.remove(
  tabIds: number | number[],
  callback?: function,
)

1 つ以上のタブを閉じます。

パラメータ

  • tabIds

    number | number[]

    閉じるタブ ID またはタブ ID のリスト。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

sendMessage()

Promise
chrome.tabs.sendMessage(
  tabId: number,
  message: any,
  options?: object,
  callback?: function,
)

指定したタブのコンテンツ スクリプトに 1 つのメッセージを送信します。レスポンスが返されたときに実行するコールバックは省略可能です。runtime.onMessage イベントは、現在の拡張機能の指定されたタブで実行されている各コンテンツ スクリプトで発生します。

パラメータ

  • tabId

    数値

  • メッセージ

    任意

    送信するメッセージ。このメッセージは JSON に変換可能なオブジェクトである必要があります。

  • オプション

    オブジェクト(省略可)

    • documentId

      文字列 省略可

      Chrome 106 以降

      タブ内のすべてのフレームではなく、documentId で識別される特定のドキュメントにメッセージを送信します。

    • frameId

      number(省略可)

      タブ内のすべてのフレームではなく、frameId で識別される特定のフレームにメッセージを送信します。

  • callback

    function 省略可

    Chrome 99 以降

    callback パラメータは次のようになります。

    (response: any) => void

    • レスポンス

      任意

      メッセージのハンドラから送信された JSON レスポンス オブジェクト。指定したタブへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、runtime.lastError はエラー メッセージに設定されます。

戻り値

  • Promise<any>

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

setZoom()

Promise
chrome.tabs.setZoom(
  tabId?: number,
  zoomFactor: number,
  callback?: function,
)

指定したタブをズームします。

パラメータ

  • tabId

    number(省略可)

    ズームするタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。

  • zoomFactor

    数値

    新しいズーム倍率。値を 0 にすると、タブが現在のデフォルトのズーム係数に設定されます。0 より大きい値は、タブのズーム係数(デフォルト以外の場合もあります)を指定します。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

setZoomSettings()

Promise
chrome.tabs.setZoomSettings(
  tabId?: number,
  zoomSettings: ZoomSettings,
  callback?: function,
)

指定したタブのズーム設定を設定します。この設定により、ズームの変更がどのように処理されるかが決まります。これらの設定は、タブを移動するとデフォルトに戻ります。

パラメータ

  • tabId

    number(省略可)

    ズーム設定を変更するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。

  • zoomSettings

    ズームの変更をどのように処理するか、およびその範囲を定義します。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

ungroup()

Promise Chrome 88 以降
chrome.tabs.ungroup(
  tabIds: number | [number, ...number[]],
  callback?: function,
)

1 つ以上のタブをそれぞれのグループから削除します。グループが空になると、削除されます。

パラメータ

  • tabIds

    数値 | [数値, ...数値 []]

    それぞれのグループから削除するタブ ID またはタブ ID のリスト。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

update()

Promise
chrome.tabs.update(
  tabId?: number,
  updateProperties: object,
  callback?: function,
)

タブのプロパティを変更します。updateProperties で指定されていないプロパティは変更されません。

パラメータ

  • tabId

    number(省略可)

    デフォルトは、現在のウィンドウの選択したタブです。

  • updateProperties

    オブジェクト

    • アクティブ

      ブール値(省略可)

      タブをアクティブにするかどうか。ウィンドウがフォーカスされているかどうかには影響しません(windows.update を参照)。

    • autoDiscardable

      ブール値(省略可)

      Chrome 54 以降

      リソースが不足しているときに、タブをブラウザによって自動的に破棄するかどうか。

    • 強調表示

      ブール値(省略可)

      現在の選択範囲からタブを追加または削除します。

    • ミュート中

      ブール値(省略可)

      Chrome 45 以降

      タブをミュートするかどうか。

    • openerTabId

      number(省略可)

      このタブを開いたタブの ID。指定する場合、開いたタブはこのタブと同じウィンドウに存在する必要があります。

    • 固定中

      ブール値(省略可)

      タブを固定するかどうか。

    • 選択済み

      ブール値(省略可)

      非推奨

      ハイライト表示を使用してください。

      タブを選択するかどうか。

    • URL

      文字列 省略可

      タブを移動する URL。JavaScript URL はサポートされていません。代わりに scripting.executeScript を使用してください。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (tab?: Tab) => void

    • タブ

      タブ 省略可

      更新されたタブの詳細。"tabs" 権限がリクエストされていない場合、tabs.Tab オブジェクトには urlpendingUrltitlefavIconUrl が含まれません。

戻り値

  • Promise<Tab | undefined>

    Chrome 88 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性を確保するためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されるのと同じ型で解決されます。

イベント

onActivated

chrome.tabs.onActivated.addListener(
  callback: function,
)

ウィンドウ内のアクティブなタブが変更されたときに発生します。このイベントが発生した時点でタブの URL が設定されていない場合がありますが、onUpdated イベントをリッスンして、URL が設定されたときに通知を受け取ることができます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (activeInfo: object) => void

    • activeInfo

      オブジェクト

      • tabId

        数値

        アクティブになったタブの ID。

      • windowId

        数値

        アクティブなタブが変更されたウィンドウの ID。

onAttached

chrome.tabs.onAttached.addListener(
  callback: function,
)

タブがウィンドウにアタッチされたときに発生します(ウィンドウ間で移動された場合など)。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tabId: number, attachInfo: object) => void

    • tabId

      数値

    • attachInfo

      オブジェクト

      • newPosition

        数値

      • newWindowId

        数値

onCreated

chrome.tabs.onCreated.addListener(
  callback: function,
)

タブが作成されたときに発生します。このイベントが発生した時点で、タブの URL とタブグループ メンバーシップが設定されていない場合がありますが、onUpdated イベントをリッスンして、URL が設定されたときやタブがタブグループに追加されたときに通知を受け取ることができます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tab: Tab) => void

onDetached

chrome.tabs.onDetached.addListener(
  callback: function,
)

タブがウィンドウから切断されたときに発生します(ウィンドウ間で移動された場合など)。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tabId: number, detachInfo: object) => void

    • tabId

      数値

    • detachInfo

      オブジェクト

      • oldPosition

        数値

      • oldWindowId

        数値

onHighlighted

chrome.tabs.onHighlighted.addListener(
  callback: function,
)

ウィンドウ内のハイライト表示または選択されているタブが変更されたときに発生します。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (highlightInfo: object) => void

    • highlightInfo

      オブジェクト

      • tabIds

        number[]

        ウィンドウ内のハイライト表示されたすべてのタブ。

      • windowId

        数値

        タブが変更されたウィンドウ。

onMoved

chrome.tabs.onMoved.addListener(
  callback: function,
)

タブがウィンドウ内で移動されたときに発生します。移動イベントは 1 つだけ発生し、ユーザーが直接移動したタブを表します。手動で移動したタブに応じて移動する必要がある他のタブに対して、移動イベントは発生しません。このイベントは、タブがウィンドウ間で移動されたときには発生しません。詳細については、tabs.onDetached をご覧ください。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tabId: number, moveInfo: object) => void

    • tabId

      数値

    • moveInfo

      オブジェクト

      • fromIndex

        数値

      • toIndex

        数値

      • windowId

        数値

onRemoved

chrome.tabs.onRemoved.addListener(
  callback: function,
)

タブが閉じられたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tabId: number, removeInfo: object) => void

    • tabId

      数値

    • removeInfo

      オブジェクト

      • isWindowClosing

        ブール値

        親ウィンドウが閉じられたためにタブが閉じられた場合は true。

      • windowId

        数値

        タブが閉じられているウィンドウ。

onReplaced

chrome.tabs.onReplaced.addListener(
  callback: function,
)

プリレンダリングまたはインスタントによってタブが別のタブに置き換えられるときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (addedTabId: number, removedTabId: number) => void

    • addedTabId

      数値

    • removedTabId

      数値

onUpdated

chrome.tabs.onUpdated.addListener(
  callback: function,
)

タブが更新されたときに発生します。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tabId: number, changeInfo: object, tab: Tab) => void

    • tabId

      数値

    • changeInfo

      オブジェクト

      • Audible

        ブール値(省略可)

        Chrome 45 以降

        タブの新しい音声状態。

      • autoDiscardable

        ブール値(省略可)

        Chrome 54 以降

        タブの新しい自動破棄状態。

      • 破棄されました

        ブール値(省略可)

        Chrome 54 以降

        タブの新しい破棄状態。

      • favIconUrl

        文字列 省略可

        タブの新しいファビコンの URL。

      • 凍結

        ブール値(省略可)

        保留中

        タブの新しいフリーズ状態。

      • groupId

        number(省略可)

        Chrome 88 以降

        タブの新しいグループ。

      • mutedInfo

        MutedInfo(省略可)

        Chrome 46 以降

        タブの新しいミュート状態と、変更の理由。

      • 固定中

        ブール値(省略可)

        タブの新しい固定状態。

      • status

        TabStatus 省略可

        タブの読み込みステータス。

      • title

        文字列 省略可

        Chrome 48 以降

        タブの新しいタイトル。

      • URL

        文字列 省略可

        タブの URL(変更されている場合)。

    • タブ

onZoomChange

chrome.tabs.onZoomChange.addListener(
  callback: function,
)

タブがズームされたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      オブジェクト

      • newZoomFactor

        数値

      • oldZoomFactor

        数値

      • tabId

        数値

      • zoomSettings