説明
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
画像のピクセルデータ。ImageData オブジェクト(canvas 要素など)である必要があります。
タイプ
ImageData
TabDetails
プロパティ
- 
    tabId
number 省略可
状態をクエリするタブの ID。タブが指定されていない場合は、タブ固有ではない状態が返されます。
 
メソッド
getPopup()
chrome.pageAction.getPopup(
details: TabDetails,
callback?: function,
): Promise<string>
このページ アクションのポップアップとして設定された HTML ドキュメントを取得します。
パラメータ
- 
    詳細
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(result: string) => void
- 
    件の結果
文字列
 
 - 
    
 
戻り値
- 
            
Promise<string>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
getTitle()
chrome.pageAction.getTitle(
details: TabDetails,
callback?: function,
): Promise<string>
ページ アクションのタイトルを取得します。
パラメータ
- 
    詳細
 - 
    callback
関数 省略可
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
関数 省略可
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 | object 省略可
設定するアイコンを表す ImageData オブジェクトまたは {size -> ImageData} ディクショナリのいずれか。アイコンが辞書として指定されている場合、使用される実際の画像は画面のピクセル密度に応じて選択されます。1 つの画面スペース単位に収まる画像ピクセルの数が
scaleの場合、サイズscale* n の画像が選択されます。ここで、n は UI のアイコンのサイズです。画像を少なくとも 1 つ指定する必要があります。「details.imageData = foo」は「details.imageData = {'16': foo}」と同じです。 - 
    パス
string | object 省略可
設定するアイコンを指す相対画像パス、または {サイズ -> 相対画像パス} のディクショナリ。アイコンが辞書として指定されている場合、使用される実際の画像は画面のピクセル密度に応じて選択されます。1 つの画面スペース単位に収まる画像ピクセルの数が
scaleの場合、サイズscale* n の画像が選択されます。ここで、n は UI のアイコンのサイズです。画像を少なくとも 1 つ指定する必要があります。'details.path = foo' は 'details.path = {'16': foo}' と同等です。 - 
    tabId
数値
ページ アクションを変更するタブの ID。
 
 - 
    
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
setPopup()
chrome.pageAction.setPopup(
details: object,
callback?: function,
): Promise<void>
ユーザーがページ アクションのアイコンをクリックしたときにポップアップとして開く HTML ドキュメントを設定します。
パラメータ
- 
    詳細
オブジェクト
- 
    ポップアップ
文字列
ポップアップに表示する HTML ファイルの相対パス。空の文字列(
'')に設定すると、ポップアップは表示されません。 - 
    tabId
数値
ページ アクションを変更するタブの ID。
 
 - 
    
 - 
    callback
関数 省略可
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
関数 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
show()
chrome.pageAction.show(
tabId: number,
callback?: function,
): Promise<void>
ページ操作が表示されます。ページ アクションは、タブが選択されるたびに表示されます。
パラメータ
- 
    tabId
数値
ページ アクションを変更するタブの ID。
 - 
    callback
関数 省略可
Chrome 67 以降callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 101 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。