建一个mfc单文档程序,基类选择CHtmlView 修改(添加)代码如下
#include "atlbase.h"void CaaView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
Navigate2(_T("http://localhost/a.htm"),NULL,NULL);
}void CaaView::OnNavigateComplete2(LPCTSTR strURL)
{
CHtmlView::OnNavigateComplete2(strURL);
CComQIPtr<IHTMLDocument2> pDoc = GetHtmlDocument();
CComPtr<IHTMLElement> pElem;
pDoc->get_body(&pElem);
CComQIPtr<IHTMLBodyElement> pBody = pElem;
CComPtr<IHTMLElementCollection> pElemCol;
pDoc->get_all(&pElemCol);
long len;
pElemCol->get_length(&len);
for(int i = 0; i < len; i++){
CComVariant v(i), v2(1);
CComPtr<IDispatch> pDispatch;
pElemCol->item(v, v2, &pDispatch);
CComQIPtr<IHTMLElement> pElem = pDispatch;
CComBSTR s;
pElem->get_tagName(&s);
TRACE(s);
TRACE("\n");
}
}
以上代码主要想得到测试页面中所有的tag名
http://localhost/a.htm 如下
<HTML>
<HEAD>
    <TITLE>Page Title</TITLE>
</HEAD><SCRIPT LANGUAGE="JavaScript">
    function Loaded()
    {
        var c = document.all.length;
        var i;        for(i = 0; i < c; i++)
        {
            spanTAGS.innerHTML = spanTAGS.innerHTML +
                document.all.item(i).tagName + "<BR>";
        }
    }
</SCRIPT><BODY onload="Loaded()">    <SPAN id="spanTAGS"></SPAN></BODY></HTML>用debug模式运行程序,得到的输出如下
HTML
HEAD
TITLE
SCRIPT
程序找不到SCRIPT以后的body span标记 pElem的值为NULL
请问如何修改代码才能得到body标记,
也就是写一段与Loaded函数功能相近的vc代码