我正在做一个跨浏览器扩展,它覆盖了标准的"New“页面。
有一个名为manifest.json
的chrome_url_overrides
键。
"chrome_url_overrides": { "newtab": "index.html" }
它工作在Chrome和火狐!但是在Opera (45.0)中,当我试图加载扩展时会发生以下错误:
指定的扩展ID不允许使用“chrome_url_overrides”。
根据我在重写文档中读到的内容,Opera支持这一点。
现在我不确定Opera是否一般不允许这样做,或者是否有办法激活它?
编辑:我在歌剧论坛上找到了一个类似的,还没有答案,三个月前的线程。
发布于 2019-11-30 21:06:19
实际上,Opera现在正式表示不支持 chrome_url_overrides
。在您引用的MDN页面上可以找到证据,歌剧代表在他们的论坛上也证实了这一点。
要在Opera中实现新的选项卡扩展(实际上在其他浏览器中也是这样),一个可能的解决办法是在以下代码中使用背景脚本:
const redirectURLS = [
"opera://startpage/",
"browser://startpage/",
"chrome://startpage/"
];
chrome.tabs.onCreated.addListener(function(tab) {
for (let i = 0; i < redirectURLS.length; i++) {
if (tab.url === redirectURLS[i]) break; // user is trying to open startpage
if (i == redirectURLS.length - 1) return; // Tab is not trying to open a startpage
}
chrome.tabs.update(tab.id, { url: "index.html" });
});
这样会检查用户是否尝试打开一个新选项卡,如果是这样的话,它将打开安装插件时附带的自定义index.html页面。这是一个烦人和肮脏的,不确定它是否会被Opera接受,但这仍然可能是一个拯救的道路,有人拼命地试图获得一个新的选项卡扩展,生活在其他Opera插件。
有趣的事实: Opera开发并分发了一个addon,它可以帮助您在Opera上的铬扩展存储中安装铬扩展,但是新的选项卡扩展在安装时不能工作,并且在安装时失败,并带有以下消息:
请注意,此扩展需要在Opera中不支持的API。它仍然可以在Opera中工作,所以完成安装来验证。
发布于 2019-03-20 23:16:06
https://stackoverflow.com/questions/44635013
复制相似问题