我希望能够在每个页面上使用像vimium和颜色逆变器这样的扩展,包括内置类似chrome://settings
或about:newtab
。
Firefox或Chromium都不允许扩展来修改内置页面。
这种行为可以改变吗?我并不偏爱任何一个浏览器,我只需要它在其中一个中工作。如果有必要的话,我很乐意搞乱这些消息来源并重新编译。
我希望能够在每个页面上使用像vimium和颜色逆变器这样的扩展,包括内置类似chrome://settings
或about:newtab
。
Firefox或Chromium都不允许扩展来修改内置页面。
这种行为可以改变吗?我并不偏爱任何一个浏览器,我只需要它在其中一个中工作。如果有必要的话,我很乐意搞乱这些消息来源并重新编译。
Answers:
WebExtensions无法修改about:
或chrome://
页面,因此您提及的行为无法更改。这是Firefox和Chrome支持的唯一扩展API,因为前者已经放弃了对XUL扩展的支持。
扩展可以将内容脚本注入到与URL模式或特定选项卡匹配的选项卡中tabs.executeScript()
。这两种方法都采取开始与“匹配模式”为目标页<scheme>
必须是http[s]
,file
,ftp
,或app
(用于Firefox),所以任何接入chrome://
或about:
网址是不可能的。CSS注入API也tabs.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 / zh-CN /加载项/ WebExtensions / API / Tabs / executeScript https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/insertCSS https://developer.mozilla。组织/ EN-US /加载项/ WebExtensions / Anatomy_of_a_WebExtension#Background_scripts