为什么在 Opera 中不允许指定扩展 ID 使用'chrome_url_overrides'?



我正在制作一个跨浏览器扩展,它覆盖了标准的"新标签"页面。

有一个manifest.json密钥,称为chrome_url_overrides

"chrome_url_overrides": { "newtab": "index.html" }

它适用于Chrome和Firefox!但是在Opera(45.0)中,当我尝试加载扩展时,会出现以下错误:

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

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

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


编辑:我在歌剧论坛中发现了一个类似的,尚未回答的,3个月前的帖子。

实际上Opera现在正式不支持chrome_url_overrides。您可以在您引用的 MDN 页面上找到一条证据,并且由 Opera 代表在其论坛中确认。

在 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" });
});

这样做将检查用户是否尝试打开新选项卡,如果是这种情况,它将打开安装插件附带的自定义索引.html页面。这是一个肮脏和肮脏的,不确定它是否会被 Opera 接受,但对于拼命试图在其他 Opera 插件中上线新标签扩展的人来说,这可能是一条救赎之路。

有趣的事实:Opera开发并分发了一个插件,可帮助您从Opera上的chrome扩展存储安装chrome扩展程序,但是新的选项卡扩展程序不起作用并且在安装时失败,并显示以下消息:

[兼容性通知] 请注意,此扩展需要 Opera 不支持的 API。 它仍然可以在 Opera 中工作,因此请完成安装以进行验证。

Opera的接受标准是:

扩展不能替换 Opera 的默认起始页。

即使您设法实现了目标并替换了标准的"新选项卡"页面,扩展也不会通过审核。

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

相关内容

  • 没有找到相关文章

最新更新