建一个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代码
#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代码
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货