page_action

型別 Object
必填
Manifest 版本 2 或更高
示例
json
"page_action": {
  "default_icon": {
    "19": "button/geo-19.png",
    "38": "button/geo-38.png"
  },
  "default_title": "Whereami?",
  "default_popup": "popup/geo.html"
}

page action 是您的擴充套件程式新增到瀏覽器 URL 欄中的一個圖示。

您的擴充套件程式還可以選擇性地提供一個關聯的彈出視窗,其內容使用 HTML、CSS 和 JavaScript 指定。

您必須指定此鍵才能在擴充套件程式中包含 page action。指定後,您可以使用 pageAction API 以程式設計方式操作按鈕。

如果您提供了彈出視窗,則當用戶單擊圖示時會開啟該彈出視窗,並且您在彈出視窗中執行的 JavaScript 可以處理使用者與之的互動。如果您沒有提供彈出視窗,則當用戶單擊圖示時,將向您擴充套件程式的 background scripts 分派一個 click 事件。

Page actions 類似於 browser actions,不同之處在於它們與特定的網頁相關聯,而不是與整個瀏覽器相關聯。如果某個操作僅在某些頁面上相關,那麼您應該使用 page action 並僅在相關頁面上顯示它。如果某個操作與所有頁面或瀏覽器本身相關,請使用 browser action。

雖然 browser actions 預設顯示,但 page actions 預設隱藏。可以透過呼叫 pageAction.show() 並傳入選項卡的 id 來為特定選項卡顯示它們。您也可以使用 show_matches 屬性更改此預設行為。

語法

page_action 鍵是一個物件,可以包含以下三個可選屬性中的任意一個:

名稱 型別 描述
browser_style
可選
已棄用 在 Manifest V3 中。
Boolean

可選。預設為 false

不要將 browser_style 設定為 true:從 Firefox 118 開始,它在 Manifest V3 中不再受支援。請參閱 browser_style 的 Manifest V3 遷移

在 Firefox 中,可以在 chrome://browser/content/extension.css 或 macOS 上的 chrome://browser/content/extension-mac.css 中看到樣式表。

latest-download 示例擴充套件使用 browser_style 在其彈出視窗中。

default_icon ObjectString

使用此選項指定操作的圖示。

建議在此處提供兩個圖示(19×19 畫素和 38×38 畫素),並將它們指定在一個物件中,屬性名為 "19""38",如下所示:

json
    "default_icon": {
      "19": "geo-19.png",
      "38": "geo-38.png"
    }

這樣做之後,瀏覽器將根據螢幕的畫素密度選擇正確大小的圖示。

您可以只在此處提供一個字串。

json
"default_icon": "geo.png"

這樣做之後,圖示將被縮放到適合工具欄的大小,並可能顯得模糊。

default_popup String

包含彈出視窗規格的 HTML 檔案的路徑。

HTML 檔案可以使用 <link><script> 元素包含 CSS 和 JavaScript 檔案,就像普通網頁一樣。但是,不要在 <script> 中使用嵌入式程式碼,因為您會收到內容違反策略的錯誤。相反,<script> 必須使用 src 屬性來載入單獨的指令碼檔案。

與普通網頁不同,在彈出視窗中執行的 JavaScript 可以訪問所有 WebExtension API(當然,前提是擴充套件程式具有相應的 許可權)。

這是一個 可本地化屬性

default_title String

圖示的工具提示,當用戶將滑鼠懸停在其上時顯示。

這是一個 可本地化屬性

hide_matches Match PatternArray,不包括 <all_urls>

預設情況下,對於 URL 與給定的 匹配模式 匹配的頁面,隱藏 page action。

請注意,page actions 預設始終隱藏,除非提供了 show_matches。因此,僅當也提供了 show_matches 時,包含此屬性才有意義,並且它將覆蓋 show_matches 中的模式。

例如,考慮一個類似的值:

json
"page_action": {
  "show_matches": ["https://*.mozilla.org/*"],
  "hide_matches": ["https://mdn.club.tw/*"]
}

這會在預設情況下顯示 page action,用於 "mozilla.org" 域下的所有 HTTPS URL,但 "developer.mozilla.org" 下的頁面除外。

show_matches Match PatternArray

預設情況下,對於 URL 與給定的模式匹配的頁面,顯示 page action。

另請參閱 hide_matches

pinned 已棄用 Boolean

可選。預設為 true

控制當用戶安裝擴充套件程式時,page action 是否默認出現在位址列中。此屬性自 Firefox 89 起不再受支援。

示例

json
"page_action": {
  "default_icon": {
    "19": "button/geo-19.png",
    "38": "button/geo-38.png"
  }
}

一個只有圖示的 page action,以 2 種不同尺寸指定。當用戶使用類似這樣的程式碼單擊圖示時,擴充套件程式的後臺指令碼可以接收點選事件。

js
browser.pageAction.onClicked.addListener(handleClick);
json
"page_action": {
  "default_icon": {
    "19": "button/geo-19.png",
    "38": "button/geo-38.png"
  },
  "default_title": "Whereami?",
  "default_popup": "popup/geo.html"
}

一個 page action,包含一個圖示、一個標題和一個彈出視窗。當用戶點選圖示時,將顯示該彈出視窗。

瀏覽器相容性

另見