我没有找到这个“xpcomInterface”的类型,并且没有任何具有此名称的类的文档。有什么想法吗?
此片段来自Mozilla的网站:
var next = elements.item(i+1);
var xpcomInterface = scroll.boxObject.QueryInterface(
Components.interfaces.nsIScrollBoxObject);
xpcomInterface.ensureElementIsVisible(elements);
- 更新
我发现boxObject导致nslBoxObject,但它没有引用上面使用的任何QueryInterface
。还有对xulplanet.com的引用,不再存在。
答案 0 :(得分:2)
嗯,xpcomInterface
只是变量的名称。
您应该阅读XPCOM and XPCOM interfaces。 QueryInterface()
是所有XPCOM对象必须实现的方法,并且您可以将对象“强制转换”到某个接口:
(...)函数
QueryInterface()
是由所有组件提供的函数,可用于获取该组件的特定接口。此函数采用一个参数,即您想要获取的接口。 (...)
在此示例中,您发现了一些对象scroll.boxObject
(更新:,这是nsIBoxObject
。请注意,这只是一个界面(以...开头) nsI
))似乎实现了nsIScrollBoxObject
接口。通过使用QueryInterface
,您可以访问这些界面的方法,例如ensureElementIsVisible
。