如何判断WebBrowser浏览器网页加载完成

 我来答
惊怕d2
2013-08-23 · TA获得超过101个赞
知道答主
回答量:126
采纳率:0%
帮助的人:180万
展开全部
一、通过DocumentCompleted 事件 通过每一次读取webBrowser.ReadyState,如同上前面所列的一样,每一次DocumentCompleted完成之事都会置ReadyState为Complete ,所以还是无法准确判断网页是否完成准确的判断。 下面看看我的代码: private void Delay(int Millisecond )//延迟系统时间,但系统又能同时能执行其它任务;{DateTime current = DateTime.Now; while (current.AddMilliseconds( Millisecond ) DateTime.Now){Application.DoEvents();//转让控制权}return;}主要的函数: private bool WaitWebPageLoad(){int i=0;string sUrl; while (true){Delay(50);//系统延迟50毫秒,够少了吧! if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) //先判断是否发生完成事件。{if (!webBrowser1.IsBusy)//再判断是浏览器是否繁忙{i = i + 1;if (i == 2)//为什么 是2呢?因为每次加载frame完成时就会置IsBusy为false,未完成就就置IsBusy为false,你想一想,加载一次,然后再一次,再一次...... 最后一次.......{sUrl = webBrowser1.Url.ToString(); if (sUrl.Contains("res")) //这是判断没有网络的情况下{return false;}else{return true;}}continue;}i=0;}}}//当然你也可以加上超时的情况,那就让你自己解决了。 我就这样解决这个问题的。请高手指正。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式