替代頁面 Override Pages
替代頁面是一種使用來自您的擴展程序的 HTML 文件替換 Google Chrome 預定提供頁面的方式。除了 HTML,替代頁面通常還包含 CSS 和 JavaScript 程式碼。(基本上就是完整的網頁,能使用chrome提供的API)
擴充功能可以替換以下任一頁面:
書籤管理器:當用戶選擇 Chrome 菜單中(或 Mac 系統上的書籤菜單中)的書籤管理器菜單項時出現的頁面。您也可以輸入 URL
chrome://bookmarks
進入該頁面。歷史記錄:當用戶選擇 Chrome 菜單中的歷史記錄(或者 Mac 系統上歷史記錄菜單中的顯示所有歷史記錄)時出現的頁面。您也可以輸入 URL
chrome://history
進入該頁面。“打開新頁籤”頁面:當用戶創建新標籤頁或新窗口時出現的頁面。您也可以輸入 URL
chrome://newtab
進入該頁面。
一個擴充功能能替換一個頁面。例如,一個擴充功能不能既替換書籤管理頁面,又替換歷史記錄頁面。
隱身模式
“打開新頁籤”頁無無法在隱身模式 的窗口替換。其他兩個頁面如果需要替摸,則需在設定檔裡將incognito屬性設定為 “spanning”(預設值)。
設定檔的權限設定
|
|
pageToOverride
可替換成以下值 :
bookmarks
history
newtab
注章事項
- 你的替代頁面應該小而快:使用者期望內置的頁面,能夠立即打開,請不要進行任何花費過長時間的操作:例如不要同步獲取網路數據:
- 你的替代頁面應該包含標題:避免使用者困惑
- 不要假定網頁是focus的狀態:因為打開新頁面時,最先獲得焦點的是網址列
- 不要試圖模仿默認的“打開新頁籤”頁面:因為能打造預定頁面功能的API不存在。
書中範例
設定檔
這裡實作的是替代“打開新頁籤”頁面,並且使用上一個段落提到的選項頁為擴充功能提供設置。當使用者打開新頁籤時,會看見他的書籤清單。
|
|
替代頁面
|
|
替代頁面腳本
腳本實作功能為:
- 取得書籤樹
- 取得完後,到storage裡去查詢,使用者有沒有設置只顯示匹配的網頁,如果有的話,將在新開啟頁面只展示匹配的網址清單
- 如果沒有設置,就列出所有的清單。
|
|
選項頁
|
|
|
|
這裡使用的是電子書中的範例,完整的範例參考第四章節的OverridePages