在C ++中获取选项卡URL

时间:2010-04-08 13:12:08

标签: c++ firefox-addon

我正在使用C ++编写Firefox扩展。

我正在枚举标签以获取各自的网址。

以下是伪代码:

nsCOMPtr<nsIWindowMediator> windowMediator = do_GetService(NS_WINDOWMEDIATOR_CONTRACTID, &rv);
windowMediator->GetMostRecentWindow(L"navigator:browser", getter_AddRefs(dwi));
dwi->GetDocument(getter_AddRefs(doc));
nsCOMPtr<nsIDOMDocumentXBL> xbl(do_QueryInterface(doc));
doc->GetElementById(NS_LITERAL_STRING("content"), getter_AddRefs(domEl));
nsCOMPtr<nsIDOMElement> pAnoEl;
xbl->GetAnonymousElementByAttribute(
                                domEl,
                                NS_LITERAL_STRING("anonid"),
                                NS_LITERAL_STRING("tabcontainer"),
                                getter_AddRefs(pAnoEl)
                                );
nsString retval;
PRBool bRet = 0;
nsCOMPtr<nsIDOMNodeList> nodeList;
pAnoEl->GetChildNodes(getter_AddRefs(nodeList));
nsCOMPtr<nsIDOMNode> domNode;
rv = nodeList->GetLength(&len);
for (PRUint32 i = 0; i < len; i++)
{
    nodeList->Item(i, getter_AddRefs(domNode));
    nsCOMPtr<nsIDOMXULElement> xulElement = do_QueryInterface(domNode);
    nsCOMPtr<nsIBoxObject> boxObject;
    xulElement->GetBoxObject(getter_AddRefs(boxObject));
    nsCOMPtr<nsIBrowserBoxObject> browserboxObject = do_QueryInterface(boxObject);
}

在上面的代码中,获取nsIBrowserBoxObject的QueryInterface失败,错误代码为:NS_ERROR_NO_INTERFACE。

请建议我获取标签网址的方法。

帮助我!!!

谢谢, Vaibhav的。

1 个答案:

答案 0 :(得分:1)

在多个论坛中提问时,请至少交叉引用您的帖子。这已在http://groups.google.com/group/mozilla.dev.tech.dom/browse_frm/thread/52ff471516662056#

中得到解答