説明
chrome.tabs
API を使用して、ブラウザのタブシステムを操作します。この API を使用すると、ブラウザのタブを作成、変更、並べ替えることができます。
概要
Tabs API には、タブの操作と管理のための機能だけでなく、タブの言語の検出、スクリーンショットの撮影、タブのコンテンツ スクリプトとの通信も可能です。
権限
ほとんどの機能を使用するのに権限は必要ありません。たとえば、新しいタブの作成、タブの再読み込み、別の URL へのナビゲーションなどです。
Tabs API を使用する際に、デベロッパーが注意すべき権限は 3 つあります。
- 「タブ」権限
- この権限では、
chrome.tabs
名前空間にアクセスできません。代わりに、tabs.Tab
インスタンスの 4 つの機密性の高いプロパティ(url
、pendingUrl
、title
、favIconUrl
)に対してtabs.query()
を呼び出す権限を拡張機能に付与します。 - ホスト権限
- ホストの権限により、拡張機能は一致するタブの 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"
});
}
});
現在のタブを取得する
この例は、拡張機能のサービス ワーカーが、現在フォーカスされているウィンドウ(フォーカスされている 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
タブのミュート状態と、最後に状態が変更された理由。
プロパティ
-
extensionId
文字列 省略可
ミュート状態を変更した拡張機能の ID。ミュート状態が最後に変更された理由が拡張機能ではない場合、設定されません。
-
ミュート中
ブール値
タブがミュートされている(音声が再生されていない)かどうか。タブが再生されていない場合や、現在音声を再生していない場合でも、ミュートされていることがあります。「ミュート」音声インジケーターが表示されているかどうかと同じです。
-
reason
MutedInfoReason(ミュート情報の理由)省略可
タブがミュートまたはミュート解除された理由。タブのミュート状態が変更されていない場合は設定されません。
MutedInfoReason
ミュート状態の変更をトリガーしたイベント。
列挙型
「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
タブの読み込みステータス。
列挙型
「unloaded」
「読み込み中」
「complete」
WindowType
ウィンドウのタイプ。
列挙型
「normal」
「popup」
「パネル」
「app」
「devtools」
ZoomSettings
タブ内のズーム変更の処理方法とそのスコープを定義します。
プロパティ
-
defaultZoomFactor
number(省略可)
Chrome 43 以降tabs.getZoomSettings の呼び出しで、現在のタブのデフォルトのズームレベルを返すために使用されます。
-
モード
ZoomSettingsMode 省略可
ズームの変更を処理する方法(ページの実際のスケーリングを担当するエンティティ)を定義します。デフォルトは
automatic
です。 -
スコープ
ZoomSettingsScope(省略可)
ズームの変更をページのオリジンに保持するか、このタブでのみ有効にするかを定義します。デフォルトは、
automatic
モードの場合はper-origin
、それ以外の場合はper-tab
です。
ZoomSettingsMode
ズームの変更を処理する方法(ページの実際のスケーリングを担当するエンティティ)を定義します。デフォルトは automatic
です。
列挙型
「自動」
ズームの変更はブラウザによって自動的に処理されます。
「manual」
ズーム変更の自動処理をオーバーライドします。onZoomChange
イベントは引き続きディスパッチされます。このイベントをリッスンしてページを手動でスケーリングするのは拡張機能の責任です。このモードでは per-origin
ズームがサポートされていないため、scope
ズーム設定は無視され、per-tab
が想定されます。
「disabled」
タブ内のすべてのズームを無効にします。タブはデフォルトのズームレベルに戻り、ズームの変更はすべて無視されます。
ZoomSettingsScope
ズームの変更をページのオリジンに保持するか、このタブでのみ有効にするかを定義します。デフォルトは、automatic
モードの場合は per-origin
、それ以外の場合は per-tab
です。
列挙型
「オリジンごと」
ズームの変更は、ズームされたページのオリジンで保持されます。つまり、同じオリジンに移動した他のすべてのタブもズームされます。さらに、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:- スキーマ ページ、他の拡張機能のページ、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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
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
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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
タブ内のコンテンツの主要言語を検出します。
パラメータ
-
tabId
number(省略可)
デフォルトは、現在のウィンドウのアクティブなタブです。
-
callback
function 省略可
callback
パラメータは次のようになります。(language: string) => void
-
language
文字列
ISO 言語コード(
en
やfr
など)。このメソッドでサポートされている言語の一覧については、kLanguageInfoTable をご覧ください。2 番目から 4 番目の列がチェックされ、最初の NULL 以外の値が返されます(簡体字中国語の場合はzh-CN
が返されます)。不明な言語または未定義の言語の場合は、und
が返されます。
-
戻り値
-
Promise<string>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
タブをメモリから破棄します。破棄されたタブはタブバーに引き続き表示され、アクティブにすると再読み込みされます。
パラメータ
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
タブを複製します。
パラメータ
-
tabId
数値
複製するタブの ID。
-
callback
function 省略可
callback
パラメータは次のようになります。(tab?: Tab) => void
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Manifest V3 では scripting.executeScript
に置き換えられました。
JavaScript コードをページに挿入します。詳しくは、コンテンツ スクリプト ドキュメントのプログラムによる挿入をご覧ください。
パラメータ
-
tabId
number(省略可)
スクリプトを実行するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
実行するスクリプトの詳細。code プロパティまたは file プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
function 省略可
callback
パラメータは次のようになります。(result?: any[]) => void
-
件の結果
any[] 省略可
挿入された各フレームでのスクリプトの結果。
-
戻り値
-
Promise<any[] | undefined>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
指定されたタブの詳細を取得します。
戻り値
-
Promise<タブ>
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
を返します。
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
tabs.query
{active: true}
を使用してください。
指定されたウィンドウで選択されているタブを取得します。
パラメータ
戻り値
-
Promise<タブ>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
指定されたタブの現在のズーム倍率を取得します。
パラメータ
-
tabId
number(省略可)
現在のズーム倍率を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
callback
function 省略可
callback
パラメータは次のようになります。(zoomFactor: number) => void
-
zoomFactor
数値
タブの現在のズーム倍率。
-
戻り値
-
Promise<number>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
指定したタブの現在のズーム設定を取得します。
パラメータ
-
tabId
number(省略可)
現在のズーム設定を取得するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
callback
function 省略可
callback
パラメータは次のようになります。(zoomSettings: ZoomSettings) => void
-
zoomSettings
タブの現在のズーム設定。
-
戻り値
-
Promise<ZoomSettings>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
前のページに戻る(ある場合)。
パラメータ
-
tabId
number(省略可)
戻る先のタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
次のページがある場合は、そのページに移動します。
パラメータ
-
tabId
number(省略可)
前方に移動するタブの ID。デフォルトは、現在のウィンドウで選択されているタブです。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
group()
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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
指定したタブをハイライト表示し、グループの最初のタブにフォーカスを設定します。指定したタブが現在アクティブな場合、何もしないようです。
パラメータ
-
highlightInfo
オブジェクト
-
タブ
number | number[]
ハイライト表示するタブ番号を 1 つ以上指定します。
-
windowId
number(省略可)
タブを含むウィンドウ。
-
-
callback
function 省略可
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
number(省略可)
CSS を挿入するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
挿入する CSS テキストの詳細。code プロパティまたは file プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
1 つ以上のタブをウィンドウ内の新しい位置に移動するか、新しいウィンドウに移動します。タブを移動できるのは、通常のウィンドウ(window.type === "normal")との間でのみです。
パラメータ
戻り値
-
Chrome 88 以降
Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
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
文字列 省略可
ページのタイトルをパターンと照合します。拡張機能に
"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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
reload()
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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
remove()
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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
Manifest V3 では scripting.removeCSS
に置き換えられました。
scripting.insertCSS
の呼び出しによって以前に挿入された CSS をページから削除します。
パラメータ
-
tabId
number(省略可)
CSS を削除するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
削除する CSS テキストの詳細。code プロパティまたは file プロパティのいずれかを設定する必要がありますが、両方を同時に設定することはできません。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
指定したタブのコンテンツ スクリプトに 1 つのメッセージを送信します。レスポンスが返されたときに実行するコールバックは省略可能です。runtime.onMessage
イベントは、現在の拡張機能の指定されたタブで実行されている各コンテンツ スクリプトで発生します。
パラメータ
-
tabId
数値
-
メッセージ
任意
送信するメッセージ。このメッセージは JSON に変換可能なオブジェクトである必要があります。
-
オプション
オブジェクト(省略可)
-
callback
function 省略可
Chrome 99 以降callback
パラメータは次のようになります。(response: any) => void
-
レスポンス
任意
メッセージのハンドラから送信された JSON レスポンス オブジェクト。指定したタブへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、
runtime.lastError
はエラー メッセージに設定されます。
-
戻り値
-
Promise<any>
Chrome 99 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
runtime.sendMessage
を使用してください。
指定したタブのコンテンツ スクリプトに 1 つのリクエストを送信します。レスポンスが返されたときに実行するコールバックは省略可能です。extension.onRequest
イベントは、現在の拡張機能の指定されたタブで実行されている各コンテンツ スクリプトで発生します。
パラメータ
-
tabId
数値
-
リクエスト
任意
-
callback
function 省略可
Chrome 99 以降callback
パラメータは次のようになります。(response: any) => void
-
レスポンス
任意
リクエストのハンドラから送信された JSON レスポンス オブジェクト。指定したタブへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、
runtime.lastError
はエラー メッセージに設定されます。
-
戻り値
-
Promise<any>
Chrome 99 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setZoom()
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 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
指定したタブのズーム設定を設定します。この設定により、ズームの変更がどのように処理されるかが決まります。これらの設定は、タブを移動するとデフォルトに戻ります。
パラメータ
-
tabId
number(省略可)
ズーム設定を変更するタブの ID。デフォルトは、現在のウィンドウのアクティブなタブです。
-
zoomSettings
ズームの変更をどのように処理するか、およびその範囲を定義します。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
1 つ以上のタブをそれぞれのグループから削除します。グループが空になると、削除されます。
パラメータ
-
tabIds
数値 | [数値, ...数値 []]
それぞれのグループから削除するタブ ID またはタブ ID のリスト。
-
callback
function 省略可
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
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
文字列 省略可
タブを移動する URL。JavaScript URL はサポートされていません。代わりに
scripting.executeScript
を使用してください。
-
-
callback
function 省略可
callback
パラメータは次のようになります。(tab?: Tab) => void
戻り値
-
Promise<Tab | undefined>
Chrome 88 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
イベント
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
number[]
ウィンドウ内のハイライト表示されたすべてのタブ。
-
windowId
数値
タブが変更されたウィンドウ。
-
-
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
数値
-
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
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
-
-