MFC使用WebBrowser控件访问HTML页面DOM
2012-10-08 20:01
597 查看
我们经常会将一些数据写入HTML页面中,以便使用。例如:<input type="hidden" name="RoadPointsArray" id="LanLonPoints" value="" />,通过JavaScript得到的一些结果暂时放入id为LanLonPoints的value属性中,然后我们要在MFC中访问这个网页中的数据并进行一些处理,这时就需要得到网页的DOM来获取它们的属性值。
具体方法如下(贴出完整代码):
m_WebBrowser是WebBrowser控件的关联变量,同时在头文件中要加上#include <MsHTML.h>以包含那些接口
具体方法如下(贴出完整代码):
m_WebBrowser是WebBrowser控件的关联变量,同时在头文件中要加上#include <MsHTML.h>以包含那些接口
void CDemoDlg::OnBnClickedButtonGetwebdata() { CString allPointData; IDispatch *pDisp = m_WebBrowser.get_Document(); IHTMLDocument2* pDocument; IHTMLElementCollection* pCollection; pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDocument); HRESULT hr; hr = pDocument->get_all(&pCollection); if( hr == S_OK ) { long celem; hr = pCollection->get_length(&celem); //得到所有节点的个数用以遍历 if( hr == S_OK ) { VARIANT varIndex, var; for ( int i = 0; i < celem; i++ ) { varIndex.vt = VT_UINT; varIndex.lVal = i; VariantInit(&var); hr = pCollection->item(varIndex,var,&pDisp); if ( hr == S_OK ) { IHTMLElement *pElement; hr = pDisp->QueryInterface(IID_IHTMLElement,(void**)&pElement); if ( hr == S_OK ) { CString pointData,id; BSTR bs; pElement->get_id(&bs); id = CString(bs); if ( id == _T("LanLonPoints") ) { IHTMLInputElement* input; hr = pDisp->QueryInterface(IID_IHTMLInputElement,(void**)&input); input->get_value(&bs); //将id为LanLonPoints中的value值赋给bs pointData = CString(bs); allPointData = pointData; } } } } } } parseRoadData(allPointData); }
通过以上方法我们就可以得到所需的数据了,然后再根据需要进行处理。
相关文章推荐
- MFC项目使用webbrowser控件,点击载入的页面里的文件下载链接后导致程序的崩溃问题的解决方案
- springboot如何使用thymeleaf模板访问html页面
- 直接访问WebBrowser控件中的HTML源码 (收藏)
- Javascript访问html页面的控件
- HTML中利用WebBrowser控件进行打印页面的控制
- mfc里使用webbrowser控件的一点体会
- 直接访问webbrowser控件中的html源码
- 关于使用WinHtmlEditor控件获得html代码加载到wpf中webbrowser控件上乱码问题
- 使用 WebBrowser 控件作为 HTML 文本编辑器[转]
- 使用HtmlInputHidden 控件在本页面保持状态和跨页面传值
- Javascript访问html页面的控件的方法详细分析
- 使用TIdHTTP控件进行页面访问
- WebBrowser控件跨域访问页面内容
- Javascript访问html页面的控件的方法详细分析
- 使用 HtmlInputHidden 控件在本页面保持状态和跨页面传值
- Javascript访问html页面的控件的方法详细分析第1/2页
- 直接访问WebBrowser控件中的HTML源码
- 手机html页面对checkbox控件需要使用click事件,而不是tap
- 使用 HtmlInputHidden 控件在本页面保持状态和跨页面传值
- 使用w使使用webbrowser控件,浏览页面时,点右键查看属性时程序死掉