通过IWebBrowser2的Navigate2来打开网页,怎样判断网页是否全部加载完毕

首先创建一个mfc的dlg工程,工程名叫IWebBrowser2_DEMO

在dlg上右键插入ActiveX控件,找到Microsoft Web Browser后点击确定,并添加变量m_test

添加一个button按钮,双击响应事件

m_test.Navigate(L"http://www.baidu.com",NULL,NULL,NULL,NULL);

再在dlg窗口添加一个edit控件,调整好大小,设置水平和垂直滚动条

在Web Browser控件上右键-属性,添加控件事件DocumentComplete

生成代码如下

BEGIN_EVENTSINK_MAP(Ctestweb1Dlg, CDialog)
	ON_EVENT(Ctestweb1Dlg, IDC_EXPLORER1, 259, Ctestweb1Dlg::DocumentCompleteExplorer1, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()

当网页正常加载成功后自动将源码写入到edit控件中

void Ctestweb1Dlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
{
	// TODO: 在此处添加消息处理程序代码
	m_test.put_Silent(TRUE);
	IHTMLDocument2   *objDocument=NULL;
	CComPtr<IHTMLElement> m_pBody;
	CComBSTR bstrHTMLText;
	objDocument=(IHTMLDocument2 *)m_test.get_Document();//m_ie是浏览器控件
	HRESULT hr=objDocument->get_body(&m_pBody);
	if (FAILED(hr))
		return;
	hr=m_pBody->get_outerHTML(&bstrHTMLText);
	if (FAILED(hr))
		return;
	CString html=bstrHTMLText.m_str;//获取到的html代码
	SetDlgItemText(IDC_EDIT,html);
}

其中

m_test.put_Silent(TRUE);

表示当遇到js脚本错误的时候自动跳过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值