頁面操作和瀏覽器操作
位址列按鈕(或頁面操作)與工具欄按鈕(或瀏覽器操作)類似。
區別在於
-
按鈕的位置
- 頁面操作顯示在瀏覽器位址列內部。
- 瀏覽器操作顯示在位址列外部,位於瀏覽器工具欄中。
-
按鈕的可見性
- 頁面操作預設隱藏(儘管可以透過
show_matches和hide_matchesmanifest 鍵 屬性更改此預設設定),您可以透過呼叫pageAction.show()和pageAction.hide()來顯示或隱藏特定標籤頁上的它。 - 瀏覽器操作始終顯示。
- 頁面操作預設隱藏(儘管可以透過
當操作與當前頁面相關時,請使用頁面操作。當操作與整個瀏覽器或多個頁面相關時,請使用瀏覽器操作。例如:
| 型別 | 書籤操作 | 內容操作 | 標籤頁操作 |
|---|---|---|---|
| 頁面操作 | 書籤此頁面 | Reddit 增強 | 傳送標籤頁 |
| 瀏覽器操作 | 顯示所有書籤 | 啟用廣告攔截 | 同步所有開啟的標籤頁 |
指定頁面操作
您可以使用 manifest.json 中的 page_action 鍵來定義頁面操作的屬性。
json
"page_action": {
"default_icon": {
"19": "button/geo-19.png",
"38": "button/geo-38.png"
},
"default_title": "Whereami?"
}
唯一必需的鍵是 default_icon。
有兩種方法可以指定頁面操作:帶彈出視窗或不帶彈出視窗。
-
不帶彈出視窗: 當用戶點選按鈕時,會向擴充套件程式分派一個事件,擴充套件程式使用
pageAction.onClicked來監聽該事件。jsbrowser.pageAction.onClicked.addListener(handleClick); -
帶彈出視窗: 不會分派
click事件。相反,當用戶點選按鈕時,會顯示彈出視窗。然後使用者與彈出視窗進行互動。當用戶點選彈出視窗外部時,它會自動關閉。有關建立和管理彈出視窗的更多詳細資訊,請參閱 彈出視窗 文章。
請注意,您的擴充套件程式只能有一個頁面操作。
您可以使用 pageAction API 以程式設計方式更改頁面操作的任何屬性。
圖示
有關如何建立要與頁面操作一起使用的圖示的詳細資訊,請參閱 Acorn 設計系統 文件中的 圖示設計。
示例
GitHub 上的 webextensions-examples 儲存庫包含 chill-out 示例,該示例實現了一個不帶彈出視窗的頁面操作。
