为什么在 Opera 中指定的扩展 ID 不允许 'chrome_url_overrides'?
Why in Opera the 'chrome_url_overrides' is not allowed for specified extension ID?
我正在制作一个跨浏览器扩展,它会覆盖标准 "New Tab" 页面。
有一个 manifest.json
键,叫做 chrome_url_overrides
:
"chrome_url_overrides": { "newtab": "index.html" }
它适用于 Chrome 和 Firefox!但在 Opera (45.0) 中,当我尝试加载扩展时出现以下错误:
'chrome_url_overrides' is not allowed for specified extension ID.
根据我在 MDN chrome_url_overrides docs 中阅读的内容,Opera 支持它。
现在我不确定 Opera 是否通常不允许这样做,或者是否有激活它的方法?
编辑: 我在 Opera 论坛中找到了 similar, unanswered yet, 3-months-old thread。
Opera 的 Acceptance Criteria 说:
Extensions cannot replace Opera’s default start page.
即使您设法实现了目标并替换了标准 "New Tab" 页面,扩展程序也不会通过审核。
解决方法包括分配一个键盘快捷方式来打开您的页面,或者从浏览器操作按钮启动它。
实际上Opera现在正式不支持chrome_url_overrides
。在 MDN page that you referenced and it was confirmed by an Opera representative in their forum.
上可以找到一个证据
在 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 页面。这是一个 hacky 和肮脏的,不确定它是否会被 Opera 接受,但是对于那些拼命试图在其他 Opera Addons 中使用新标签扩展的人来说,这可能是一条救赎之路。
有趣的事实: Opera 开发并分发了一个插件,可帮助您从 Opera 上的 chrome 扩展商店安装 chrome 扩展,但新的选项卡扩展没有' 工作并在安装时失败并显示以下消息:
[Compatibility notice]
Please, be aware that this extension requires APIs that are not supported in Opera.
It still can work in Opera, so complete installation to verify.
我正在制作一个跨浏览器扩展,它会覆盖标准 "New Tab" 页面。
有一个 manifest.json
键,叫做 chrome_url_overrides
:
"chrome_url_overrides": { "newtab": "index.html" }
它适用于 Chrome 和 Firefox!但在 Opera (45.0) 中,当我尝试加载扩展时出现以下错误:
'chrome_url_overrides' is not allowed for specified extension ID.
根据我在 MDN chrome_url_overrides docs 中阅读的内容,Opera 支持它。
现在我不确定 Opera 是否通常不允许这样做,或者是否有激活它的方法?
编辑: 我在 Opera 论坛中找到了 similar, unanswered yet, 3-months-old thread。
Opera 的 Acceptance Criteria 说:
Extensions cannot replace Opera’s default start page.
即使您设法实现了目标并替换了标准 "New Tab" 页面,扩展程序也不会通过审核。
解决方法包括分配一个键盘快捷方式来打开您的页面,或者从浏览器操作按钮启动它。
实际上Opera现在正式不支持chrome_url_overrides
。在 MDN page that you referenced and it was confirmed by an Opera representative in their forum.
在 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 页面。这是一个 hacky 和肮脏的,不确定它是否会被 Opera 接受,但是对于那些拼命试图在其他 Opera Addons 中使用新标签扩展的人来说,这可能是一条救赎之路。
有趣的事实: Opera 开发并分发了一个插件,可帮助您从 Opera 上的 chrome 扩展商店安装 chrome 扩展,但新的选项卡扩展没有' 工作并在安装时失败并显示以下消息:
[Compatibility notice] Please, be aware that this extension requires APIs that are not supported in Opera. It still can work in Opera, so complete installation to verify.