首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在Opera中不允许使用“chrome_url_overrides”来指定扩展ID?

为什么在Opera中不允许使用“chrome_url_overrides”来指定扩展ID?
EN

Stack Overflow用户
提问于 2017-06-19 15:54:02
回答 2查看 1.2K关注 0票数 5

我正在做一个跨浏览器扩展,它覆盖了标准的"New“页面。

有一个名为manifest.jsonchrome_url_overrides键。

代码语言:javascript
运行
复制
"chrome_url_overrides": { "newtab": "index.html" }

它工作在Chrome和火狐!但是在Opera (45.0)中,当我试图加载扩展时会发生以下错误:

指定的扩展ID不允许使用“chrome_url_overrides”。

根据我在重写文档中读到的内容,Opera支持这一点。

现在我不确定Opera是否一般不允许这样做,或者是否有办法激活它?

编辑:我在歌剧论坛上找到了一个类似的,还没有答案,三个月前的线程

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-30 21:06:19

实际上,Opera现在正式表示不支持 chrome_url_overrides。在您引用的MDN页面上可以找到证据,歌剧代表在他们的论坛上也证实了这一点。

要在Opera中实现新的选项卡扩展(实际上在其他浏览器中也是这样),一个可能的解决办法是在以下代码中使用背景脚本:

代码语言:javascript
运行
复制
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中工作,所以完成安装来验证。

票数 2
EN

Stack Overflow用户

发布于 2019-03-20 23:16:06

歌剧的验收标准说:

扩展不能取代Opera的默认起始页。

即使您能够完成您的目标,并取代标准的“新标签”页面,那么扩展将不会通过适度。

解决方法包括分配键盘快捷方式来打开页面,或者从浏览器操作按钮启动它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44635013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档