chrome.pageAction

説明

chrome.pageAction API を使用して、アドレスバーの右側にある Google Chrome のメイン ツールバーにアイコンを配置します。ページ アクションは、現在のページで実行できるアクションを表しますが、すべてのページに適用できるわけではありません。ページの操作は、非アクティブな場合はグレー表示になります。

対象

≤ MV2

例:

  • このページの 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

Chrome 88 以降

プロパティ

  • tabId

    number 省略可

    状態をクエリするタブの ID。タブが指定されていない場合は、タブ固有ではない状態が返されます。

メソッド

getPopup()

Promise
chrome.pageAction.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

このページ アクションのポップアップとして設定された HTML ドキュメントを取得します。

パラメータ

  • 詳細
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (result: string) => void

    • 件の結果

      文字列

戻り値

  • Promise<string>

    Chrome 101 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

getTitle()

Promise
chrome.pageAction.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

ページ アクションのタイトルを取得します。

パラメータ

  • 詳細
  • callback

    関数 省略可

    callback パラメータは次のようになります。

    (result: string) => void

    • 件の結果

      文字列

戻り値

  • Promise<string>

    Chrome 101 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

hide()

Promise
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()

Promise
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()

Promise
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()

Promise
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()

Promise
chrome.pageAction.show(
  tabId: number,
  callback?: function,
)
: Promise<void>

ページ操作が表示されます。ページ アクションは、タブが選択されるたびに表示されます。

パラメータ

  • tabId

    数値

    ページ アクションを変更するタブの ID。

  • callback

    関数 省略可

    Chrome 67 以降

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 101 以降

    Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。

イベント

onClicked

chrome.pageAction.onClicked.addListener(
  callback: function,
)

ページ アクション アイコンがクリックされたときに呼び出されます。ページ アクションにポップアップがある場合、このイベントは発生しません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (tab: tabs.Tab) => void