这个对象的类型是什么?它在哪里记录?

时间:2010-09-23 18:33:24

标签: javascript xul xpcom

我没有找到这个“xpcomInterface”的类型,并且没有任何具有此名称的类的文档。有什么想法吗?

此片段来自Mozilla的网站:

var next = elements.item(i+1);
var xpcomInterface = scroll.boxObject.QueryInterface(
Components.interfaces.nsIScrollBoxObject);
xpcomInterface.ensureElementIsVisible(elements);

- 更新

我发现boxObject导致nslBoxObject,但它没有引用上面使用的任何QueryInterface。还有对xulplanet.com的引用,不再存在。

1 个答案:

答案 0 :(得分:2)

嗯,xpcomInterface只是变量的名称。

您应该阅读XPCOM and XPCOM interfacesQueryInterface()是所有XPCOM对象必须实现的方法,并且您可以将对象“强制转换”到某个接口:

  

(...)函数QueryInterface()是由所有组件提供的函数,可用于获取该组件的特定接口。此函数采用一个参数,即您想要获取的接口。 (...)

在此示例中,您发现了一些对象scroll.boxObject更新:,这是nsIBoxObject。请注意,这只是一个界面(以...开头) nsI))似乎实现了nsIScrollBoxObject接口。通过使用QueryInterface,您可以访问这些界面的方法,例如ensureElementIsVisible