0

我对 xul 中的窗口 id 有疑问。我的 xul 文件中有类似的东西,我想从 javascript 访问这个窗口。基本上,我想要一个函数使用它的名称返回对该窗口的引用。有什么功能可以做到这一点吗?

4

1 回答 1

1

如果您有一个顶级 XUL 窗口,您可以使用nsIWindowMediator获得对它的引用,如下所示:

Components.utils.import("resource://gre/modules/Services.jsm");

Services.wm.getMostRecentWindow("navigator:browser");

navigator:browser是浏览器窗口的类型,您必须使用窗口的windowtype属性值。请注意,这没有使用id属性 - ID 是另一回事,并且对于应用叠加层最有用。

要获得多个相同类型的窗口,您可以编写:

var enumerator = Services.wm.getEnumerator("navigator:browser");
while (enumerator.hasMoreElements())
  alert(enumerator.getNext().QueryInterface(Components.interfaces.nsIDOMWindow));
于 2012-04-04T08:25:31.410 回答