説明
chrome.tabs
API を使用して、ブラウザのタブシステムを操作します。この API を使用して、ブラウザのタブを作成、変更、並べ替えることができます。
Tabs API は、タブを操作および管理する機能を提供するだけでなく、タブの言語の検出、スクリーンショットの撮影、タブのコンテンツ スクリプトとのやり取りも可能です。
権限
ほとんどの機能は、使用するのに権限を必要としません。たとえば、新しいタブの作成、タブの再読み込み、別の URL への移動などを行います。
Tabs API を使用するときにデベロッパーが知っておくべき権限は 3 つあります。
- 「タブ」権限
この権限では、
chrome.tabs
Namespace にはアクセスできません。代わりに、tabs.Tab
インスタンスの 4 つの機密プロパティ(url
、pendingUrl
、title
、favIconUrl
)に対して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"
});
}
});
現在のタブを取得する
この例は、拡張機能の Service Worker が現在フォーカスされているウィンドウ(または、フォーカスされている 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.");
}
});
}
選択したタブのコンテンツ スクリプトにメッセージを渡す
この例は、拡張機能の Service Worker が 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
タブのミュート状態と、前回状態が変更された理由。
プロパティ
-
extensionId
string(省略可)
ミュート状態を変更した拡張機能の ID。ミュート状態が最後に変更された理由が拡張機能ではない場合は設定されません。
-
ミュート中
boolean
タブがミュートされている(音声を再生できない)かどうか。タブは、まだ再生していない場合や、現在音声を再生していない場合でも、ミュートされることがあります。「ミュート」の音声インジケーターが表示されるかどうかに相当します。
-
reason
MutedInfoReason 省略可
タブがミュートまたはミュート解除された理由。タブのミュート状態が一度も変更されていない場合は設定されません。
MutedInfoReason
ミュート状態の変化を引き起こしたイベント。
列挙型
"user"
ミュート状態を設定するユーザー入力アクション。
"capture"
タブ キャプチャが開始され、ミュート状態が強制的に変更されます。
"extension"
extensionId フィールドで指定される拡張機能がミュート状態を設定します。
Tab
プロパティ
-
アクティブであることを表します。
boolean
ウィンドウでタブがアクティブかどうか。必ずしもウィンドウがフォーカスされているとは限りません。
-
Audible
ブール値(省略可)
Chrome 45 以降そのタブで過去数秒間に音声が聞こえたかどうか(ただしミュートしている場合、音声が聞こえないことがあります)。「スピーカーの音声」インジケーターが表示されるかどうかに相当します。
-
autoDiscardable
boolean
Chrome 54 以降リソースが少なくなったときにブラウザでタブを自動的に破棄できるかどうか。
-
破棄されました
boolean
Chrome 54 以降タブが破棄されるかどうか。破棄されたタブとは、コンテンツがメモリからアンロードされたものの、タブバーにまだ表示されているタブです。そのコンテンツは、次回アクティブになったときに再読み込みされます。
-
favIconUrl
string(省略可)
タブのファビコンの URL です。このプロパティは、拡張機能のマニフェストに
"tabs"
権限が含まれている場合にのみ存在します。タブの読み込み中は空の文字列になることもあります。 -
groupId
数値
Chrome 88 以降タブが属するグループの ID。
-
身長
number(省略可)
タブの高さ(ピクセル単位)。
-
強調表示
boolean
タブがハイライト表示されているかどうか。
-
id
number(省略可)
タブの ID。タブ ID はブラウザ セッション内で一意です。状況によっては、タブに ID が割り当てられないことがあります。たとえば、
sessions
API を使用して外部タブをクエリする場合、セッション ID が存在することがあります。アプリと DevTools ウィンドウでは、タブ ID をchrome.tabs.TAB_ID_NONE
に設定することもできます。 -
シークレット モード
boolean
タブがシークレット ウィンドウにあるかどうか。
-
index
数値
ウィンドウ内のタブのゼロから始まるインデックス。
-
lastAccessed
number(省略可)
Chrome 121 以降タブが最後にアクセスされた時刻を、エポックからのミリ秒数で示したもの。
-
mutedInfo
MutedInfo 省略可
Chrome 46 以降タブのミュート状態と、前回状態が変更された理由。
-
openerTabId
number(省略可)
このタブを開いたタブの ID(ある場合)。このプロパティは、開始タブがまだ存在する場合にのみ存在します。
-
pendingUrl
string(省略可)
Chrome 79 以降commit 前のタブの移動先となる URL。このプロパティは、拡張機能のマニフェストに
"tabs"
権限が含まれ、保留中のナビゲーションがある場合にのみ存在します。 -
固定
boolean
タブが固定されているかどうか。
-
選択済み
boolean
非推奨tabs.Tab.highlighted
を使用してください。タブが選択されているかどうか。
-
sessionId
string(省略可)
sessions
API から取得したタブを一意に識別するために使用されるセッション ID。 -
status
TabStatus 省略可
タブの読み込みステータス。
-
title
string(省略可)
タブのタイトル。このプロパティは、拡張機能のマニフェストに
"tabs"
権限が含まれている場合にのみ存在します。 -
url
string(省略可)
最後に commit されたタブのメインフレームの URL。このプロパティは、拡張機能のマニフェストに
"tabs"
権限が含まれている場合のみ存在します。タブがまだ commit されていない場合は空の文字列になります。Tab.pendingUrl
もご覧ください。 -
幅
number(省略可)
タブの幅(ピクセル単位)。
-
windowId
数値
タブを含むウィンドウの ID。
TabStatus
タブの読み込みステータス。
列挙型
"loading"
"complete"
WindowType
ウィンドウのタイプ。
列挙型
"normal"
ZoomSettings
タブのズーム変更の処理方法と対象範囲を定義します。
プロパティ
-
defaultZoomFactor
number(省略可)
Chrome 43 以降tab.getZoomSettings の呼び出しで、現在のタブのデフォルトのズームレベルを返すために使用されます。
-
モード
ZoomSettingsMode 省略可
ズーム変更の処理方法(ページの実際のスケーリングを担うエンティティ)を定義します。デフォルトは
automatic
です。 -
スコープ
ズームの変更をページの原点で維持するか、このタブでのみ有効にするかを定義します。
automatic
モードの場合はデフォルトでper-origin
、それ以外の場合はper-tab
になります。
ZoomSettingsMode
ズーム変更の処理方法(ページの実際のスケーリングを担うエンティティ)を定義します。デフォルトは automatic
です。
列挙型
"automatic"
ズームの変更はブラウザによって自動的に処理されます。
"manual"
ズーム変更の自動処理をオーバーライドします。onZoomChange
イベントは引き続きディスパッチされ、拡張機能側でこのイベントをリッスンして手動でページを拡大縮小する必要があります。このモードでは per-origin
ズームがサポートされていないため、scope
ズーム設定を無視し、per-tab
を想定します。
"disabled"
タブ内のすべてのズームが無効になります。タブがデフォルトのズームレベルに戻り、ズームの変更を試みてもすべて無視されます。
ZoomSettingsScope
ズームの変更をページの原点で維持するか、このタブでのみ有効にするかを定義します。automatic
モードの場合はデフォルトで per-origin
、それ以外の場合は per-tab
になります。
列挙型
"per-origin"
ズームの変更はズームしたページの原点に保持されます。つまり、同じ原点に移動する他のすべてのタブもズームされます。さらに、per-origin
のズーム変更は原点とともに保存されます。つまり、同じ原点にある他のページに移動すると、それらはすべて同じズーム倍率にズームされます。per-origin
スコープは automatic
モードでのみ使用できます。
"タブ単位"
ズームの変更はこのタブでのみ有効で、他のタブでズームを変更してもこのタブのズームには影響しません。また、per-tab
のズーム変更はナビゲーション時にリセットされます。つまり、タブを移動すると、常に per-origin
のズーム係数を持つページが読み込まれます。
プロパティ
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
captureVisibleTab
を 1 秒あたりに呼び出せる最大回数。captureVisibleTab
は高コストであるため、頻繁に呼び出すことは避ける必要があります。
値
2
TAB_ID_NONE
ブラウザタブの不在を表す ID。
値
-1
TAB_INDEX_NONE
tab_strip にタブ インデックスがないことを表すインデックス。
値
-1
メソッド
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
)
指定されたウィンドウで現在アクティブなタブの表示領域をキャプチャします。このメソッドを呼び出すには、拡張機能に <all_urls> 権限または activeTab 権限が必要です。この方法では、拡張機能が通常アクセスできるサイトに加えて、chrome:-scheme ページ、その他の拡張機能のページ、data: URL など、制限の対象となっているプライベートなサイトを拡張機能でキャプチャできるようになります。こうした機密性の高いサイトは、activeTab 権限でのみキャプチャできます。ファイルの URL は、拡張機能にファイル アクセス権が付与されている場合にのみキャプチャできます。
パラメータ
-
windowId
number(省略可)
ターゲット ウィンドウ。デフォルトは現在のウィンドウです。
-
オプション
ImageDetails 省略可
-
callback
関数(省略可)
callback
パラメータは次のようになります。(dataUrl: string) => void
-
dataUrl
string
キャプチャしたタブの表示領域の画像をエンコードするデータ URL。表示のために HTML
img
要素の「src」プロパティに割り当てることができます。
-
戻り値
-
Promise<文字列>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
指定されたタブのコンテンツ スクリプトに接続します。runtime.onConnect
イベントは、現在の拡張機能の指定されたタブで実行されているコンテンツ スクリプトごとに呼び出されます。詳しくは、Content Script のメッセージをご覧ください。
パラメータ
-
tabId
数値
-
connectInfo
オブジェクト 省略可
戻り値
-
指定したタブで実行されているコンテンツ スクリプトとの通信に使用できるポート。タブが閉じるか存在しない場合は、ポートの
runtime.Port
イベントが発生します。
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
新しいタブを作成します。
パラメータ
-
createProperties
オブジェクト
-
アクティブであることを表します。
ブール値(省略可)
タブをウィンドウ内のアクティブなタブにするかどうか。ウィンドウがフォーカスされているかどうかには影響しません(
windows.update
を参照)。デフォルトはtrue
です。 -
index
number(省略可)
ウィンドウ内のタブの位置。指定された値は、ゼロとウィンドウ内のタブ数の間に制限されます。
-
openerTabId
number(省略可)
このタブを開いたタブの ID。指定する場合、オープナー タブは新しく作成されたタブと同じウィンドウに表示される必要があります。
-
固定
ブール値(省略可)
タブを固定するかどうか。デフォルトは
false
です -
選択済み
ブール値(省略可)
非推奨active を使用してください。
タブをウィンドウ内の選択したタブにするかどうかを指定します。デフォルトは
true
です -
url
string(省略可)
タブの最初の移動先の URL。完全修飾 URL には、スキーム(「www.google.com」ではなく「http://www.google.com」と入力します)。相対 URL は、拡張機能の現在のページが基準になります。デフォルトは新しいタブページです。
-
windowId
number(省略可)
新しいタブを作成するウィンドウ。デフォルトは現在のウィンドウです。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(tab: Tab) => void
-
タブ
作成されたタブ。
-
戻り値
-
Promise<Tab>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
タブ内のコンテンツの主要言語を検出します。
パラメータ
-
tabId
number(省略可)
デフォルトでは、現在のウィンドウでアクティブなタブが使用されます。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(language: string) => void
-
language
string
ISO 言語コード(
en
、fr
など)。このメソッドでサポートされている言語の完全なリストについては、kLanguageInfoTable をご覧ください。2 列目から 4 列目がチェックされ、最初の非 NULL 値が返されます。ただし、簡体字中国語の場合はzh-CN
が返されます。言語が不明または未定義の場合、und
が返されます。
-
戻り値
-
Promise<文字列>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
メモリからタブを破棄します。破棄されたタブは引き続きタブバーに表示され、アクティブになると再読み込みされます。
パラメータ
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
タブを複製します。
パラメータ
-
tabId
数値
複製するタブの ID。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(tab?: Tab) => void
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Manifest V3 で scripting.executeScript
に置き換えられました。
JavaScript コードをページに挿入します。詳しくは、コンテンツ スクリプトのドキュメントのプログラマティック インジェクション セクションをご覧ください。
パラメータ
-
tabId
number(省略可)
スクリプトを実行するタブの ID。デフォルトは現在のウィンドウのアクティブなタブです。
-
実行するスクリプトの詳細。コードまたはファイル プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result?: any[]) => void
-
件の結果
any[] 省略可
挿入された各フレームのスクリプトの結果。
-
戻り値
-
Promise<any[] | 未定義>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
指定したタブの詳細を取得します。
戻り値
-
Promise<Tab>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
tabs.query
{windowId: windowId}
を使用してください。
指定されたウィンドウ内のすべてのタブの詳細を取得します。
パラメータ
戻り値
-
Promise<Tab[]>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
このスクリプト呼び出しが行われているタブを取得します。タブ以外のコンテキスト(バックグラウンド ページやポップアップ ビューなど)から呼び出された場合は、undefined
を返します。
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
tabs.query
{active: true}
を使用してください。
指定されたウィンドウで選択されているタブを取得します。
パラメータ
戻り値
-
Promise<Tab>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
指定したタブの現在のズーム倍率を取得します。
パラメータ
-
tabId
number(省略可)
現在のズーム倍率を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(zoomFactor: number) => void
-
zoomFactor
数値
タブの現在のズーム倍率。
-
戻り値
-
Promise<数値>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
指定したタブの現在のズーム設定を取得します。
パラメータ
-
tabId
number(省略可)
現在のズーム設定を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(zoomSettings: ZoomSettings) => void
-
zoomSettings
タブの現在のズーム設定。
-
戻り値
-
Promise<ZoomSettings>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
前のページに戻ります(表示されている場合)。
パラメータ
-
tabId
number(省略可)
戻るタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
次のページがある場合は、それに進みます。
パラメータ
-
tabId
number(省略可)
次に移動するタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
group()
chrome.tabs.group(
options: object,
callback?: function,
)
指定したグループに 1 つ以上のタブを追加します。グループが指定されていない場合は、指定したタブを新しく作成されたグループに追加します。
パラメータ
-
オプション
オブジェクト
-
createProperties
オブジェクト 省略可
グループを作成するための設定。groupId がすでに指定されている場合は使用できません。
-
windowId
number(省略可)
新しいグループのウィンドウ。デフォルトは現在のウィンドウです。
-
-
groupId
number(省略可)
タブを追加するグループの ID。指定しない場合は、新しいグループが作成されます。
-
tabIds
数値 | [数値, ...数値 []]
指定したグループに追加するタブ ID またはタブ ID のリスト。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(groupId: number) => void
-
groupId
数値
タブが追加されたグループの ID。
-
戻り値
-
Promise<数値>
Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
指定したタブをハイライト表示し、グループの最初のタブにフォーカスします。指定したタブが現在アクティブな場合は、何も行わないように見えます。
パラメータ
-
highlightInfo
オブジェクト
-
タブ
数値 | 数値 []
ハイライト表示する 1 つ以上のタブ インデックス。
-
windowId
number(省略可)
タブを含むウィンドウ。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(window: Window) => void
-
クリックします。
タブがハイライト表示されたウィンドウの詳細が含まれます。
-
戻り値
-
Promise<windows.Window>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Manifest V3 で scripting.insertCSS
に置き換えられました。
CSS をページに挿入します。このメソッドで挿入したスタイルは、scripting.removeCSS
で削除できます。詳しくは、コンテンツ スクリプトのドキュメントのプログラマティック インジェクション セクションをご覧ください。
パラメータ
-
tabId
number(省略可)
CSS を挿入するタブの ID です。デフォルトは現在のウィンドウのアクティブなタブです。
-
挿入する CSS テキストの詳細。コードまたはファイル プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
1 つ以上のタブをウィンドウ内の新しい位置、または新しいウィンドウに移動します。タブは、通常の (window.type === "normal) ウィンドウとの間でのみ移動できます。
パラメータ
戻り値
-
Chrome 88 以降
Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
query()
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
string(省略可)
ページのタイトルをパターンと照合します。拡張機能に
"tabs"
権限がない場合、このプロパティは無視されます。 -
url
string | string[] 省略可
タブを 1 つ以上の URL パターンと照合します。フラグメント識別子が一致しません。拡張機能に
"tabs"
権限がない場合、このプロパティは無視されます。 -
windowId
number(省略可)
親ウィンドウの ID、または現在のウィンドウの場合は
windows.WINDOW_ID_CURRENT
。 -
windowType
WindowType 省略可
タブが表示されているウィンドウの種類。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result: Tab[]) => void
-
件の結果
タブ[]
-
戻り値
-
Promise<Tab[]>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
タブを再読み込みする。
パラメータ
-
tabId
number(省略可)
再読み込みするタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。
-
reloadProperties
オブジェクト 省略可
-
bypassCache
ブール値(省略可)
ローカル キャッシュをバイパスするかどうか。デフォルトは
false
です。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
1 つ以上のタブを閉じます。
パラメータ
-
tabIds
数値 | 数値 []
閉じるタブ ID またはタブ ID のリスト。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
Manifest V3 で scripting.removeCSS
に置き換えられました。
以前に scripting.insertCSS
の呼び出しによって挿入されたページ CSS から削除します。
パラメータ
-
tabId
number(省略可)
CSS を削除するタブの ID。デフォルトは現在のウィンドウのアクティブなタブです。
-
削除する CSS テキストの詳細。コードまたはファイル プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
指定したタブのコンテンツ スクリプトにメッセージを 1 つ送信します。応答が返信されたときにコールバック(省略可)を実行します。runtime.onMessage
イベントは、現在の拡張機能の指定されたタブで実行されているコンテンツ スクリプトごとに呼び出されます。
パラメータ
-
tabId
数値
-
メッセージ
任意
送信するメッセージ。このメッセージは、JSON に変換可能なオブジェクトである必要があります。
-
オプション
オブジェクト 省略可
-
callback
関数(省略可)
Chrome 99 以降callback
パラメータは次のようになります。(response: any) => void
-
レスポンス
任意
メッセージのハンドラによって送信される JSON レスポンス オブジェクト。指定したタブへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、
runtime.lastError
がエラー メッセージに設定されます。
-
戻り値
-
Promise<任意>
Chrome 99 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
runtime.sendMessage
を使用してください。
指定したタブのコンテンツ スクリプトに単一のリクエストを送信します。レスポンスが返信されたときに実行するコールバック(省略可)を指定します。extension.onRequest
イベントは、現在の拡張機能の指定されたタブで実行されているコンテンツ スクリプトごとに呼び出されます。
パラメータ
-
tabId
数値
-
request
任意
-
callback
関数(省略可)
Chrome 99 以降callback
パラメータは次のようになります。(response: any) => void
-
レスポンス
任意
リクエストのハンドラによって送信される JSON レスポンス オブジェクト。指定したタブへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、
runtime.lastError
がエラー メッセージに設定されます。
-
戻り値
-
Promise<任意>
Chrome 99 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
指定したタブをズームします。
パラメータ
-
tabId
number(省略可)
ズームするタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
zoomFactor
数値
新しいズーム倍率。値を
0
にすると、タブは現在のデフォルトのズーム倍率に設定されます。0
より大きい値には、タブのズーム係数を指定します(デフォルト以外の場合もあります)。 -
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
指定したタブのズーム設定(ズーム変更の処理方法を定義します)を設定します。これらの設定は、タブに移動するとデフォルトにリセットされます。
パラメータ
-
tabId
number(省略可)
ズーム設定を変更するタブの ID。デフォルトは現在のウィンドウのアクティブなタブです。
-
zoomSettings
ズーム変更の処理方法と適用範囲を定義します。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
1 つ以上のタブをそれぞれのグループから削除します。空のグループは削除されます。
パラメータ
-
tabIds
数値 | [数値, ...数値 []]
それぞれのグループから削除するタブ ID またはタブ ID のリスト。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
タブのプロパティを変更します。updateProperties
で指定されていないプロパティは変更されません。
パラメータ
-
tabId
number(省略可)
デフォルトでは、現在のウィンドウで選択されているタブが使用されます。
-
updateProperties
オブジェクト
-
アクティブであることを表します。
ブール値(省略可)
タブを有効にするかどうかを指定します。ウィンドウがフォーカスされているかどうかには影響しません(
windows.update
を参照)。 -
autoDiscardable
ブール値(省略可)
Chrome 54 以降リソースが少なくなったときにブラウザが自動的にタブを破棄するかどうか。
-
強調表示
ブール値(省略可)
現在の選択内容に対してタブを追加または削除します。
-
ミュート中
ブール値(省略可)
Chrome 45 以降タブをミュートするかどうか。
-
openerTabId
number(省略可)
このタブを開いたタブの ID。指定する場合、オープナー タブはこのタブと同じウィンドウ内に表示される必要があります。
-
固定
ブール値(省略可)
タブを固定するかどうか。
-
選択済み
ブール値(省略可)
非推奨ハイライト表示されたものを使用してください。
タブを選択するかどうかを指定します。
-
url
string(省略可)
タブの移動先の URL。JavaScript URL はサポートされていません。代わりに
scripting.executeScript
を使用してください。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(tab?: Tab) => void
戻り値
-
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。
-
-
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
tabs.onActivated
を使用してください。
ウィンドウ内で選択されたタブが変更されたときに発行されます。このイベントが発生した時点でタブの URL が設定されていない可能性がありますが、tabs.onUpdated
イベントをリッスンすることで、URL が設定されたときに通知を受け取ることができます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(tabId: number, selectInfo: object) => void
-
tabId
数値
-
selectInfo
オブジェクト
-
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 が設定されたとき、またはタブがタブグループに追加されたときに通知を受け取ることができます。
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
ウィンドウからタブが分離されたときに呼び出されます。たとえば、ウィンドウ間でタブを移動した場合に発生します。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(tabId: number, detachInfo: object) => void
-
tabId
数値
-
detachInfo
オブジェクト
-
oldPosition
数値
-
oldWindowId
数値
-
-
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
tabs.onHighlighted
を使用してください。
ウィンドウ内でハイライト表示または選択されたタブが変更されたときに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(selectInfo: object) => void
-
selectInfo
オブジェクト
-
tabIds
数値 []
ウィンドウ内でハイライト表示されているすべてのタブ。
-
windowId
数値
タブが変更されたウィンドウ。
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
ウィンドウ内でハイライト表示または選択されたタブが変更されたときに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(highlightInfo: object) => void
-
highlightInfo
オブジェクト
-
tabIds
数値 []
ウィンドウ内でハイライト表示されているすべてのタブ。
-
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
boolean
親ウィンドウが閉じられたためにタブが閉じられた場合は true。
-
windowId
数値
タブが閉じているウィンドウ。
-
-
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
事前レンダリングまたはインスタントにより、タブが別のタブに置き換えられたときに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(addedTabId: number, removedTabId: number) => void
-
addedTabId
数値
-
removedTabId
数値
-
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
tabs.onActivated
を使用してください。
ウィンドウ内で選択されたタブが変更されたときに発行されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(tabId: number, selectInfo: object) => void
-
tabId
数値
-
selectInfo
オブジェクト
-
windowId
数値
選択されたタブが変更された内部ウィンドウの ID。
-
-
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
string(省略可)
タブの新しいファビコンの URL。
-
groupId
number(省略可)
Chrome 88 以降タブの新しいグループ。
-
mutedInfo
MutedInfo 省略可
Chrome 46 以降タブの新しいミュート状態と変更理由。
-
固定
ブール値(省略可)
タブの新しい固定状態。
-
status
TabStatus 省略可
タブの読み込みステータス。
-
title
string(省略可)
Chrome 48 以降タブの新しいタイトル。
-
url
string(省略可)
タブの URL(変更されている場合)。
-
-
タブ
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
タブがズームされると呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
オブジェクト
-
newZoomFactor
数値
-
oldZoomFactor
数値
-
tabId
数値
-
zoomSettings
-
-