
我希望能夠在每個頁面上使用 vimium 和顏色反相器等擴展,包括chrome://settings
或等內建插件about:newtab
。
Firefox 或 Chromium 都不允許擴充功能修改內建頁面。
這種行為可以改變嗎?我並不特別偏愛任何一種瀏覽器,我只需要它能夠在其中一個瀏覽器中運作。我很樂意修改原始程式碼並在必要時重新編譯。
答案1
WebExtensions 無法修改about:
或chrome://
頁面,因此您提到的行為無法變更。這是 Firefox 和 Chrome 都支援的唯一擴充 API,因為前者已放棄對 XUL 擴充功能的支援。
擴充功能可以將內容腳本注入到與 URL 模式相符的選項卡或透過tabs.executeScript()
.這兩種方法都採用目標頁面的“匹配模式”,該模式<scheme>
必須以http[s]
、file
、ftp
或(對於 Firefox)開頭,因此不可能app
訪問chrome://
或URL。 about:
CSS 注入 APItabs.insertCSS()
也使用匹配模式,不能用於修改受保護的頁面。
擴充功能還可以具有無法存取網頁的後台腳本,並且必須透過內容腳本間接修改它們,因此它們受到相同的限制。
由於 Firefox 和 Chromium 的源代碼都是可用的,您當然可以進行必要的更改來授予擴展額外的權限,但沒有像編譯時切換那麼簡單的事情。
透過後台腳本註冊的鍵盤快捷鍵在所有頁面上都有效,但目前還不存在真正任意組合鍵所需的 API。如果您正在設計 Firefox 的樣式,則可能會about:
透過修改來影響頁面userChrome.css
。
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/Tabs/executeScript https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/insertCSS https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts