如何像用户单击+一样从Firefox WebExtension打开新选项卡;打开新选项卡的步骤

如何像用户单击+一样从Firefox WebExtension打开新选项卡;打开新选项卡的步骤,firefox,firefox-addon,firefox-addon-webextensions,Firefox,Firefox Addon,Firefox Addon Webextensions,我尝试了以下方法: chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.create({ url: "about:newtab" }); }); chrome.tabs.create({}); 很遗憾,我无法使用tabs.create()打开新选项卡页面about:newtab。它抛出一个安全错误: Security Error: Content a

我尝试了以下方法:

chrome.browserAction.onClicked.addListener(function(tab) 
{ 
    chrome.tabs.create({
        url: "about:newtab"
    });         
});
chrome.tabs.create({});
很遗憾,我无法使用
tabs.create()
打开新选项卡页面
about:newtab
。它抛出一个安全错误:

Security Error: Content at moz-extension://5cdd4429-f725-49c4-bdc1-547e1acc085b/ may not load or link to about:newtab.

我该如何从Firefox Web扩展中打开
about:newtab

about:newtab
被认为是一个特权
about
页面。您不能使用
选项卡.create()
显式打开它。但是,您可以打开选项卡以显示新选项卡的默认页面。通常,此默认页面将是关于:newtab的

要打开新选项卡的默认页面,可以将不包含的对象传递给

例如,要在当前窗口中的索引处打开一个新选项卡,如果用户单击
+
图标打开一个新选项卡,将使用该索引,您可以使用以下命令:

chrome.browserAction.onClicked.addListener(function(tab) 
{ 
    chrome.tabs.create({
        url: "about:newtab"
    });         
});
chrome.tabs.create({});
要在当前窗口中的
index=1
处打开新选项卡,可以执行以下操作:

chrome.tabs.create({index: 1});

默认情况下,您将打开的页面是关于:newtab
。但是,用户可能安装了另一个扩展,该扩展可以更改用于新选项卡的页面。如果是这样的话,将使用该页面。

这很有趣,它似乎应该可以工作。您是否尝试过除“关于:newtab”之外的url?您可能需要在manifest.jsontanks中请求权限。权限是“http://*/*”,我添加了“https://*/*”,但它不允许关于:newtab和chrome://。只有大约:允许为空。谷歌浏览器在这方面没有那么严格。有什么建议吗?尝试传入
url
参数,它可能会打开
about:newtab
。我会问一些webext用户,chrome://需要什么样的烫发。谢谢Noitidart,但我不明白什么是“尝试传入url参数”。你能发个密码吗?