Какой тип этого объекта?И где это задокументировано? - PullRequest
1 голос
/ 23 сентября 2010

Я не нахожу тип этого "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 Ответ

2 голосов
/ 23 сентября 2010

Ну, xpcomInterface это просто имя переменной.

Вы должны прочитать о XPCOM и XPCOM интерфейсах .QueryInterface() - это метод, который должны реализовываться всеми объектами XPCOM, и дает вам возможность «привести» объект к определенному интерфейсу:

(...) Функция QueryInterface() является функциейобеспечивается всеми компонентами, которые могут быть использованы для получения определенного интерфейса этого компонента.Эта функция принимает один параметр - интерфейс, который вы хотите получить.(...)

В этом примере есть некоторый объект scroll.boxObject ( update: , который, как вы узнали, является nsIBoxObject. Обратите внимание, что это сновапросто интерфейс (начинается с nsI)), который, кажется, реализует интерфейс nsIScrollBoxObject.Используя QueryInterface, вы можете получить доступ к таким методам интерфейса, как ensureElementIsVisible.

...