web-dev-qa-db-ja.com

ページアクションとブラウザアクションの違いは何ですか?

ブラウザーアクションを作成しましたが、ページアクションをテストしてみました。ボタンは同じ場所に配置されますが、ページアクションボタンはクリックできません(アイコンはグレー表示されます)。ページアクションボタンは、ツールバーではなくアドレスバーにあると思いました。なぜ同じ場所にあるのですか?

ブラウザのアクションボタン:
browser_action

私のページアクションボタン:
page_action

35
punchh

拡張機能APIのドキュメントで説明されているように、ブラウザーアクションボタンとページアクションボタンの両方が「アドレスバーの右側」にあります。 2種類のボタンには多くの類似点があります。どちらを使用するかは、ほとんどの場合、拡張機能を使用できるようにするか、ページの小さなサブセットのみを使用するかによって決まります。

ブラウザアクションボタンは、拡張機能をほとんどの時間またはほとんどのページで使用できる場合に使用することを目的としています。また、アイコンの上にカップルまたは少数のキャラクターを含むバッジを配置し、そのバッジに使用する背景の色を変更することにより、ユーザーにすぐに見えるステータス情報を提供することもできます。

ページアクションボタンは、拡張機能が頻繁に/通常は使用できない場合に使用するためのものです。たとえば、いくつかのドメインまたはURLでのみ使用できる場合。

ブラウザアクション ボタン

ブラウザーアクションボタンは、ほとんどのページで、またはアクティブなタブに表示されているページに関連していない/依存していないボタンがほとんどの時間有効である場合に使用する必要があります。 デフォルトでは、ブラウザのアクションボタンはすべてのタブ/ URLで有効になっています。browserAction.disable()を呼び出して各タブのボタンを無効にする必要があります無効にする(または通常、すべてのタブで無効にする)必要があります。タブに別のURLが表示されても、ブラウザーのアクションボタンは有効/無効の状態を変更しません。

Chromeの ブラウザアクションボタン ページには、次のように記載されています(一部強調されています):

ブラウザアクションを使用して、メインのGoogle Chromeツールバー、)をアドレスバーの右側に配置しますアイコン に加えて、ブラウザアクションは tooltipバッジ 、および popup を持つこともできます。

  • Doは、ほとんどのページで意味のある機能にブラウザーアクションを使用します。
  • しないでください数ページだけに意味のある機能にブラウザーアクションを使用します。 代わりに page actions を使用します。
  • Do16x16-dipスペースを最大限に活用する大きなカラフルなアイコンを使用します。ブラウザのアクションアイコンは、ページのアクションアイコンよりも少し大きく、重く見えるはずです。
  • Google Chromeのモノクロメニューアイコンを模倣しないでください。これはテーマではうまく機能せず、とにかく、拡張機能が少し目立つはずです。
  • Doアルファ透明度を使用して、アイコンにソフトエッジを追加します。多くの人がテーマを使用しているため、さまざまな背景色でアイコンが素敵に見えるはずです。
  • アイコンを常にアニメーション化しないでください。それはただ迷惑です。

ブラウザアクションには次のAPIがあります。

  • タイプ
  • メソッド
    • 無効browserAction.disable(integer tabId)
    • 有効化browserAction.enable(integer tabId)
    • getBadgeBackgroundColorbrowserAction.getBadgeBackgroundColor(object details, function callback)
    • getBadgeTextbrowserAction.getBadgeText(object details, function callback)
    • getPopup1 − browserAction.getPopup(object details, function callback)
    • getTitle1 − browserAction.getTitle(object details, function callback)
    • setBadgeBackgroundColorbrowserAction.setBadgeBackgroundColor(object details)
    • setBadgeTextbrowserAction.setBadgeText(object details)
    • setIcon1 − browserAction.setIcon(object details, function callback)
    • setPopup1 − browserAction.setPopup(object details)
    • setTitle1 − browserAction.setTitle(object details)
  • イベント

ページアクション ボタン

拡張機能のボタンを使用する機能がアクティブなタブに表示されているURLに依存しており、通常使用できない(つまり、ある条件下で、またはいくつかのURLで使用できます)。 デフォルトでは、ページアクションボタンはすべてのURLで無効化/グレー表示(「非表示」)されます。pageAction.show()を呼び出す必要があります有効にする各URL /タブのボタンを有効にします。タブに別のURLが表示される場合、ページアクションボタンは自動的に無効/非表示になります。

Chromeの ページアクションボタン ページの内容(一部強調):

_chrome.pageAction_ APIを使用して、メインのGoogle Chromeツールバー、)のアイコンをアドレスバーの右側に配置します。ページアクションは、現在のページで実行できるアクションを表しますが、すべてのページに適用できるわけではありません。

ブラウザのアクションと同様に、ページのアクションにはアイコン、ツールチップ、ポップアップを含めることができます。ただし、バッジを持つことはできません。さらに、ページアクションはグレー表示できます。ブラウザアクションUIについて読むことで、アイコン、ツールチップ、およびポップアップに関する情報を見つけることができます。

pageAction.show および pageAction.hide メソッドを使用して、ページアクションを表示し、グレー表示にします。デフォルトでは、ページアクションはグレー表示されます。表示するときに、アイコンを表示するタブを指定します。アイコンは、タブが閉じられるか、別のURLの表示が開始されるまで表示されます(たとえば、ユーザーがリンクをクリックするため)。

  • いくつかのページでのみ意味のある機能に対してページアクションを使用します。
  • しないほとんどのページで意味のある機能にページアクションを使用します。代わりに browser actions を使用してください。
  • アイコンを常にアニメーション化しないでください。それはただ迷惑です。

ページアクションには次のAPIがあります。

  • タイプ
  • メソッド
    • getPopup1 − pageAction.getPopup(object details, function callback)
    • getTitle1 − pageAction.getTitle(object details, function callback)
    • 非表示chrome.pageAction.hide(integer tabId)
    • setIcon1 − pageAction.setIcon(object details, function callback)
    • setPopup1 − pageAction.setPopup(object details)
    • setTitle1 − pageAction.setTitle(object details)
    • showpageAction.show(integer tabId)
  • イベント

1.このAPIは、ブラウザーアクションとページアクションの両方で使用できます。基本的には両方で同じことを行います。

55
Makyen