我在 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);
网络上关于无需重新启动扩展的资源很少。谁能提供一个打开指定 URL 的新选项卡的示例?
最佳答案
您需要先获得一个窗口,然后才能在其中打开新选项卡。
这里的示例获取最新的导航器窗口并向其添加一个选项卡:
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
关于javascript - 从 boostraped 扩展创建新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447130/