如何从nsIDOMWindow获取Tab?

时间:2013-10-11 05:02:51

标签: javascript firefox firefox-addon xpcom

这是firefox扩展开发的一个菜鸟。有没有办法从给定的nsIDOMWindow中找到Tab对象?

let wm = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Ci.nsIWindowMediator);

var windowListener =
{
  onOpenWindow: function(aWindow)
  {
    // Wait for the window to finish loading
    let domWindow = aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);

    domWindow.addEventListener("load", function()
    {
      domWindow.removeEventListener("load", arguments.callee, false);

      if (domWindow.document.documentElement.getAttribute("windowtype") == "navigator:browser")
      {

        // how do I find tabs?

      }
    }, false);
  },
}

wm.addListener(windowListener);

试图在没有运气的情况下找到MDN上的文档,mozilla #extdev频道也没有回复:(

1 个答案:

答案 0 :(得分:3)

要获取当前标签,您可以执行以下操作:

domWindow.gBrowser.selectedTab

要获取您可以使用的所有标签集:

domWindow.gBrowser.tabContainer 

在这里,您可以使用tabs方法选择特定索引等。 您可以在tabbrowser - XULTabbed browser - Code Snippets

中查看更多信息