Доступ к анонимному содержимому XUL с помощью C ++ - PullRequest
0 голосов
/ 07 апреля 2010

Я пишу расширение Firefox, используя C ++. Я пытаюсь получить доступ к элементу XUL: tabox в обработчике событий "TabOpen", но не могу получить доступ ни к одному элементу XUL.

Я помещаю сюда псевдокод моего расширения для справки:

HandleEvent()
{
     if (event type is TabOpen)
     {
    nsCOMPtr<nsIDOMNode> OriginalNode = do_QueryInterface(event->GetTarget);
    nsCOMPtr<nsIDOMNodeList> childlist;

       //
       // Note here that I got OriginalNode's local name as "tabbrowser"
       //

    OriginalNode->GetChildNodes(getter_AddRefs(childlist));
    PRUint32 len;
    childlist->GetLength(&len);  // Return 1; consider only "popup" child element.

    nsString localName;
    nsCOMPtr<nsIDOMNode> node1;
    childlist->Item(0, getter_AddRefs(node1));
    node1->GetLocalName(localName);   // Returns "popup" as the local name.
     }
}

Обходя дерево DOM через DOM Inspector, я узнал, что элементы XUL являются анонимным контентом.

Как получить доступ к этим элементам XUL?

Очень заранее спасибо,

Vaibhav.

1 Ответ

0 голосов
/ 19 апреля 2010

Я получил решение использовать интерфейс nsIDOMDocumentXBL.

Каждый документ DOM реализует интерфейс nsIDOMDocumentXBL.

Если есть какая-либо проблема, это может быть изменение IID.

Vaibhav.

...