chtmlview能得到最终显示在网页的代码么?该如何处理
chtmlview能得到最终显示在网页的代码么?
比如一些框架的,或者通过js设置Innerhtml之类产生的网页
能否得到网页解析后的网页代码?
------解决方案--------------------
右键的话看到的是.html文件,无法得到JS操作DOM后的代码。但是用接口的话是可以的。
比如一些框架的,或者通过js设置Innerhtml之类产生的网页
能否得到网页解析后的网页代码?
------解决方案--------------------
右键的话看到的是.html文件,无法得到JS操作DOM后的代码。但是用接口的话是可以的。
- C/C++ code
IDispatch* pHtml = pHtmlView->GetHtmlDocument(); IHTMLDocument3* pHtmlDoc = NULL; IHTMLElement* pDiv = NULL; HRESULT hr; hr = pHtml->QueryInterface(IID_IHTMLDocument3, (void **)&pHtmlDoc); pHtml->Release(); if FAILED(hr) return(hr); hr = pHtmlDoc->getElementById(L"某个网页元素的Id", &pDiv); pHtmlDoc->Release(); if FAILED(hr) return(hr); if (pDiv != NULL) { BSTR text; pDiv->get_innerHtml(&text); ...这里进行处理... } pDiv->Release();
------解决方案--------------------
(1)通过dom获取根webpage的IHtmlDocument2接口,在根据tag获取body标签元素接口,innerHtml获取html
(2)通过根IHtmlDocument2接口中的getelementbytagname,以iframe和frame为参数获取所有frame接口,再用(1)中同样的方法获取