2010-12-20 107 views
3

我今天正在制作我的第一个Firefox扩展。到目前为止,我已经做了一些...但现在我想要计算用户已打开的Firefox窗口的数量(例如3)我可以计算标签,这很容易,但我似乎无法找出如何循环浏览窗口并计算它们(窗口!=选项卡,就像窗口中的选项卡,对不起,我希望这是有道理的,即使Mozilla会将它混淆在编码中)。我基本上认为,我迷失方法名称。 ..第一个插件帮助 - 通过windows循环循环使用for循环

,所以我认为这将是这样的:

var tomato = SOMETHING HERE MYSTERY DIFFICULT!!!!; 
for (var i = 0; i < tomato; i++) { 
WINDOW COUNTER HERE (EASY) 
    } 

任何想法如何做到这一点?

回答

5

您正在寻找nsIWindowMediator - 从MDC一个片段:

var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] 
        .getService(Components.interfaces.nsIWindowMediator); 
var enumerator = wm.getEnumerator(type); 
while(enumerator.hasMoreElements()) { 
    var win = enumerator.getNext(); 
    // win is [Object ChromeWindow] (just like window), do something with it 
} 
+0

由于现在完成了! – David19801 2010-12-20 21:15:40

+3

使用“navigator:browser”(带引号)来代替'type',并且可以使用'win.gBrowser.browsers.length'来获取每个窗口中的标签数量。 – pawel 2010-12-20 21:20:56