如何从 Firefox WebExtension 打开新选项卡,就像用户单击 + 打开新选项卡一样

Joh*_*ell 5 firefox firefox-addon firefox-addon-webextensions

我尝试过以下方法:

chrome.browserAction.onClicked.addListener(function(tab) 
{ 
    chrome.tabs.create({
        url: "about:newtab"
    });         
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法打开新标签about:newtabtabs.create()。它会抛出一个安全错误:

Security Error: Content at moz-extension://5cdd4429-f725-49c4-bdc1-547e1acc085b/ may not load or link to about:newtab.
Run Code Online (Sandbox Code Playgroud)

我该如何about:newtab从 Firefox WebExtension 打开?

Mak*_*yen 2

about:newtab被视为特权about页面。您无法使用显式打开它tabs.create()。但是,您可以打开一个选项卡以显示新选项卡的默认页面。通常这个默认页面是about:newtab

要打开新选项卡的默认页面,您可以传递一个tabs.create()不包含url属性的对象。

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

chrome.tabs.create({});
Run Code Online (Sandbox Code Playgroud)

index=1要在当前窗口中打开新选项卡,您可以执行以下操作:

chrome.tabs.create({index: 1});
Run Code Online (Sandbox Code Playgroud)

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