更新日: 2026-09-25 robots: noindex
説明
chrome.pageAction API を使用して、Google Chrome のメイン ツールバー(アドレスバーの右側)にアイコンを配置します。ページ アクションは、現在のページで実行できるアクションを表しますが、すべてのページに適用できるわけではありません。ページ アクションは、無効な場合はグレー表示されます。
対象
例:
- このページの RSS フィードに登録する
- このページの写真からスライドショーを作成する
次のスクリーンショットの RSS アイコンは、現在のページの RSS フィードを登録できるページ アクションを表しています。

非表示のページ アクションはグレー表示されます。たとえば、下の RSS フィードはグレー表示になっています。これは、現在のページのフィードを購読できないためです。

代わりにブラウザ アクションを使用して、ユーザーが常に拡張機能を操作できるようにすることを検討してください。
マニフェスト
次のように、拡張機能マニフェストにページ アクションを登録します。
{
"name": "My extension",
...
"page_action": {
"default_icon": { // optional
"16": "images/icon16.png", // optional
"24": "images/icon24.png", // optional
"32": "images/icon32.png" // optional
},
"default_title": "Google Mail", // optional; shown in tooltip
"default_popup": "popup.html" // optional
},
...
}
1.5 倍や 1.2 倍など、一般的でないスケーリング ファクタを持つデバイスが一般的になりつつあるため、アイコンには複数のサイズを用意することをおすすめします。Chrome は最も近いものを選択し、16 dip のスペースに合わせて拡大縮小します。また、アイコンの表示サイズが変更された場合でも、別のアイコンを用意する必要はありません。ただし、サイズの違いが大きすぎると、このスケーリングによってアイコンのディテールが失われたり、ぼやけて見えたりすることがあります。
デフォルトのアイコンを登録するための古い構文も引き続きサポートされています。
{
"name": "My extension",
...
"page_action": {
...
"default_icon": "images/icon32.png" // optional
// equivalent to "default_icon": { "32": "images/icon32.png" }
},
...
}
UI の各部
ブラウザ アクションと同様に、ページ アクションにはアイコン、ツールチップ、ポップアップを設定できますが、バッジは設定できません。また、ページのアクションがグレー表示されることもあります。アイコン、ツールチップ、ポップアップの詳細については、ブラウザ アクション UI をご覧ください。
ページ アクションを表示してグレー表示にするには、pageAction.show メソッドと pageAction.hide メソッドをそれぞれ使用します。デフォルトでは、ページ アクションはグレー表示されます。表示する際には、アイコンを表示するタブを指定します。アイコンは、タブが閉じられるか、別の URL が表示されるまで(ユーザーがリンクをクリックした場合など)表示されたままになります。
ヒント
視覚的な効果を最大限に高めるには、次のガイドラインに沿って作成してください。
- 推奨: ページ アクションは、一部のページにのみ適した機能に使用します。
- ほとんどのページで意味をなす機能には、ページ アクションを使用しないでください。代わりにブラウザ アクションを使用してください。
- アイコンを常にアニメーション化しないでください。これは面倒です。
型
ImageDataType
画像のピクセルデータ。canvas 要素などの ImageData オブジェクトを指定する必要があります。
タイプ
ImageData
TabDetails
プロパティ
-
tabId
number 省略可
状態をクエリするタブの ID。タブが指定されていない場合は、タブ固有ではない状態が返されます。
メソッド
getPopup()
chrome.pageAction.getPopup(
details: TabDetails,
callback?: function,
): Promise<string>
このページ アクションのポップアップとして設定されている HTML ドキュメントを取得します。
パラメータ
-
詳細
-
callback
function 省略可
callbackパラメータは次のようになります。(result: string) => void
-
件の結果
文字列
-
戻り値
-
Promise<string>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getTitle()
chrome.pageAction.getTitle(
details: TabDetails,
callback?: function,
): Promise<string>
ページ アクションのタイトルを取得します。
パラメータ
-
詳細
-
callback
function 省略可
callbackパラメータは次のようになります。(result: string) => void
-
件の結果
文字列
-
戻り値
-
Promise<string>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
hide()
chrome.pageAction.hide(
tabId: number,
callback?: function,
): Promise<void>
ページ アクションを非表示にします。非表示のページ操作は Chrome ツールバーに表示されますが、グレー表示になります。
パラメータ
-
tabId
数値
ページ操作を変更するタブの ID。
-
callback
function 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setIcon()
chrome.pageAction.setIcon(
details: object,
callback?: function,
): Promise<void>
ページ アクションのアイコンを設定します。アイコンは、画像ファイルへのパス、キャンバス要素のピクセルデータ、またはそのいずれかの辞書として指定できます。path プロパティまたは imageData プロパティのいずれかを指定する必要があります。
パラメータ
-
詳細
オブジェクト
-
iconIndex
number 省略可
非推奨。この引数は無視されます。
-
imageData
ImageData | オブジェクト 省略可
ImageData オブジェクト、または設定するアイコンを表す辞書 {size -> ImageData}。アイコンを辞書として指定すると、画面のピクセル密度に応じて、使用する実際の画像が選択されます。1 つの画面スペース単位に収まる画像ピクセル数が
scaleの場合、サイズがscale* n の画像が選択されます。ここで、n は UI のアイコンのサイズです。画像を少なくとも 1 つ指定する必要があります。「details.imageData = foo」は「details.imageData = {'16': foo}」と同等です。 -
パス
文字列 | オブジェクト 省略可
相対画像パス、または設定するアイコンを指す辞書 {size -> relative image path}。アイコンを辞書として指定すると、画面のピクセル密度に応じて、使用する実際の画像が選択されます。1 つの画面スペース単位に収まる画像ピクセル数が
scaleの場合、サイズがscale* n の画像が選択されます。ここで、n は UI のアイコンのサイズです。画像を少なくとも 1 つ指定する必要があります。「details.path = foo」は「details.path = {'16': foo}」と同等です。 -
tabId
数値
ページ操作を変更するタブの ID。
-
-
callback
function 省略可
callbackパラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setPopup()
chrome.pageAction.setPopup(
details: object,
callback?: function,
): Promise<void>
ユーザーがページ アクションのアイコンをクリックしたときにポップアップとして開く HTML ドキュメントを設定します。
パラメータ
-
詳細
オブジェクト
-
ポップアップ
文字列
ポップアップに表示する HTML ファイルの相対パス。空の文字列(
'')に設定すると、ポップアップは表示されません。 -
tabId
数値
ページ操作を変更するタブの ID。
-
-
callback
function 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setTitle()
chrome.pageAction.setTitle(
details: object,
callback?: function,
): Promise<void>
ページ アクションのタイトルを設定します。これは、ページ アクションのツールチップに表示されます。
パラメータ
-
詳細
オブジェクト
-
tabId
数値
ページ操作を変更するタブの ID。
-
title
文字列
ツールチップ文字列。
-
-
callback
function 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
show()
chrome.pageAction.show(
tabId: number,
callback?: function,
): Promise<void>
ページ アクションを表示します。ページ アクションは、タブが選択されるたびに表示されます。
パラメータ
-
tabId
数値
ページ操作を変更するタブの ID。
-
callback
function 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。