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