1

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

此片段来自 Mozilla 的网站:

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

- 更新

我找到了导致 nslBoxObject 的boxObject 但它没有引用QueryInterface上面使用的任何内容。还有对 xulplanet.com 的引用,现在已经不存在了。

4

1 回答 1

2

好吧,xpcomInterface只是变量的名称。

您应该阅读有关XPCOM 和 XPCOM 接口的信息。QueryInterface()是所有 XPCOM 对象都必须实现的方法,它使您可以将对象“转换”到某个接口:

(...) 函数QueryInterface()是所有组件提供的函数,可用于获取该组件的特定接口。这个函数有一个参数,你想得到的接口。(...)

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

于 2010-09-23T18:42:58.153 回答