2

这里是 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 频道也没有给我任何回应:(

4

1 回答 1

3

要获取当前选项卡,您可以执行以下操作:

domWindow.gBrowser.selectedTab

要获取所有选项卡的集合,您可以使用:

domWindow.gBrowser.tabContainer 

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

于 2013-10-11T10:32:44.400 回答