【问题标题】:How to open a new tab from a Firefox WebExtension as if the user clicked + to open a new tab如何从 Firefox WebExtension 打开一个新选项卡,就像用户单击 + 打开一个新选项卡一样
【发布时间】:2016-05-09 18:58:51
【问题描述】:

我尝试了以下方法:

chrome.browserAction.onClicked.addListener(function(tab) 
{ 
    chrome.tabs.create({
        url: "about:newtab"
    });         
});

很遗憾,我无法使用tabs.create() 打开新标签页about:newtab。它会引发安全错误:

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

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

【问题讨论】:

  • 这很有趣,看来应该可以了。您是否尝试过about:newtab 以外的网址?您可能需要在 manifest.json 中请求权限
  • 谢谢。权限为“http://*/*”、“https://*/*”
  • 我添加了 但它不允许 about:newtab 和 chrome://。只允许 about:blank。谷歌浏览器对此没有那么严格。有什么建议吗?
  • 尝试传入url参数,可能会打开about:newtab。我会问一些 webext 人你需要什么烫发chrome://
  • 感谢 Noitidart,但我不明白什么是“尝试传入 url 参数”。能发个代码吗?

标签: firefox firefox-addon firefox-addon-webextensions


【解决方案1】:

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

要打开新选项卡的默认页面,您可以将不包含url property 的对象传递给tabs.create()

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

chrome.tabs.create({});

要在当前窗口的index=1 处打开一个新标签页,您可以:

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

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

【讨论】:

    猜你喜欢
    • 2019-09-20
    • 2013-02-10
    • 2011-04-02
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多