webbrowser控件对于某些网站不能触发documentComplete事件解决办法
webbrowser控件对于某些网站不能触发documentComplete事件
我做个了最简单的基于dialog的mfc程序,把webbrowser控件拖到dialog中,然后在ok按钮点击的时候,让这个webbrowser navigate到www.usbank.com这个网站。代码如下:
void CtestDocCompleteDlg::OnBnClickedOk()
{
webBrowser1.Navigate(_T("www.usbank.com"),NULL,NULL, NULL,NULL);
}
然后在webbrowser的DocumentComplete事件中弹出对话框,指示触发了这个事件,代码如下:
void CtestDocCompleteDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
{
::MessageBox(NULL, _T("DocumentComplete"),NULL, MB_OK);
}
奇怪的是网页能够装载,但是DocumentComplete事件永远也不会触发。
如果是navigate到其他网站的话,是可以触发的。不知道为什么navigate到usbank网站就触发不了。
我查了一下以前的文章,说ie5有个版本这个事件有问题,但我用的是ie8。webbrowser控件也没有隐藏。
请各位帮忙看看,不胜感谢。
------解决方案--------------------
或许那个网站有某些资源一直下载不了,可能需要等到它超时为止。
------解决方案--------------------
再结合OnDownloadComplete事件看看
------解决方案--------------------
我这里 XP + IE6 可以收到DocumentComplete
------解决方案--------------------
这段HTML代码是脚本动态添加上去的,所以查看源文件看不到。
收不到的原因,可能是AJAX导致的,页面运作过程中在不停地使用 IXMLHttpRequest,导致浏览器认为数据尚未下载完。
我做个了最简单的基于dialog的mfc程序,把webbrowser控件拖到dialog中,然后在ok按钮点击的时候,让这个webbrowser navigate到www.usbank.com这个网站。代码如下:
void CtestDocCompleteDlg::OnBnClickedOk()
{
webBrowser1.Navigate(_T("www.usbank.com"),NULL,NULL, NULL,NULL);
}
然后在webbrowser的DocumentComplete事件中弹出对话框,指示触发了这个事件,代码如下:
void CtestDocCompleteDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
{
::MessageBox(NULL, _T("DocumentComplete"),NULL, MB_OK);
}
奇怪的是网页能够装载,但是DocumentComplete事件永远也不会触发。
如果是navigate到其他网站的话,是可以触发的。不知道为什么navigate到usbank网站就触发不了。
我查了一下以前的文章,说ie5有个版本这个事件有问题,但我用的是ie8。webbrowser控件也没有隐藏。
请各位帮忙看看,不胜感谢。
------解决方案--------------------
或许那个网站有某些资源一直下载不了,可能需要等到它超时为止。
------解决方案--------------------
再结合OnDownloadComplete事件看看
------解决方案--------------------
我这里 XP + IE6 可以收到DocumentComplete
------解决方案--------------------
这段HTML代码是脚本动态添加上去的,所以查看源文件看不到。
收不到的原因,可能是AJAX导致的,页面运作过程中在不停地使用 IXMLHttpRequest,导致浏览器认为数据尚未下载完。