从boostrapped扩展创建一个新选项卡

时间:2014-05-03 16:39:26

标签: javascript firefox firefox-addon

我在Firefox中的引导扩展程序中创建新选项卡时遇到了一些问题。到目前为止,我有一个扩展,为上下文菜单绘制一些按钮,可以点击windows.open()点击打开模态窗口,如下所示:

        var contextMenu = document.getElementById("contentAreaContextMenu");

        var menuItemWebsite = document.createElement("menuitem");
        menuItemWebsite.setAttribute("id", "dev-website");
        menuItemWebsite.setAttribute("label", "Go to website");

        contextMenu.appendChild(menuItemWebsite);
        menuItemWebsite.addEventListener("command", function() {
          window.open(...);
        }, false);

网上很少有关于无重启扩展的资源。任何人都可以提供一个打开新标签到指定网址的示例吗?

1 个答案:

答案 0 :(得分:2)

您需要先获得一个窗口,然后才能打开其中的新标签。

此示例此处获取最新的导航器窗口并向其添加选项卡:

const {classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu, results: Cr, manager: Cm} = Components;
Cu.import('resource://gre/modules/Services.jsm');
var aDOMWindow = Services.wm.getMostRecentWindow('navigator:browser');
aDOMWindow.BrowserOpenTab()

另一种方法是使用gBrowser.loadOneTab: 这样:

aDOMWindow.gBrowser.loadOneTab(aDOMWindow.BROWSER_NEW_TAB_URL, {relatedToCurrent:true});

这将打开当前焦点选项卡旁边的选项卡。 有关它的更多信息:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/loadOneTab

还有其他有用的功能: OpenBrowserWindow