您的位置:首页 > 其它

自己收集整理的关于 判断 网页是否加载完毕的方法(特别是多框架Frame),然后获取网页源码

2013-11-08 16:20 936 查看
响应浏览器控件的连接点事件,页面加载完毕时DocumentComplete事件会被触发。不过如果一个页面中存在frame/iframe的话,每个子页面都是一个独立的页面,DocumentComplete会被触发多次,所以只有根浏览器被触发时才代表整个页面加载完毕。判断是不是根浏览器,只需比较DocumentComplete的第一个参数是不是跟你创建的浏览器控件相同。

为webBrowser控件添加事件DocumentComplete

void CStillDownDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
{
// TODO: Add your message handler code here
IUnknown*  pUnk;
LPDISPATCH lpWBDisp;
HRESULT    hr;

pUnk = m_webBrowser.GetControlUnknown();
ASSERT(pUnk);

hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp);
ASSERT(SUCCEEDED(hr));

if (pDisp == lpWBDisp )
{
IHTMLDocument2 *pHTMLDocument=NULL;
if (!(pHTMLDocument = (IHTMLDocument2*)m_webBrowser.get_Document()))
return;
IHTMLElement * pBody;
pHTMLDocument->get_body(&pBody);
BSTR html;//存放html源代码
//CComBSTR html_t;//用于将BSTR转换为cout可以处理的字符串
CString html_t;
pBody->get_innerHTML(&html);
html_t=html;
}

lpWBDisp->Release();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: