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

 我来答
连白公潍
2020-04-22 · TA获得超过3658个赞
知道小有建树答主
回答量:3159
采纳率:26%
帮助的人:388万
展开全部
如何判断WebBrowser浏览器网页加载完成
在工作中遇到了这样的问题,那就是要判断WebBrowser浏览器网页是否加载完成,通过搜索发现网友们解决这一问题的几种方法,但都不能解决实际问题,现在我们就来看看网友们是如何解决这一问题的。
一、通过DocumentCompleted
事件
每一次网页完成之后都后发送DocumentCompleted
事件,但是拥有多个frame时,浏览器就会发送多个DocumentCompleted事件,所以到最后也无法最终判断网页最终什么时候加载完成。
二、通过webBrowser.ReadyState
通过每一次读取webBrowser.ReadyState,如同上前面所列的一样,每一次DocumentCompleted完成之事都会置ReadyState为Complete
,所以还是无法准确判断网页是否完成准确的判断。
三、通过webBrowser.IsBusy,有的人甚至在此基础上判断什么URL或者加Timer等等,程序复杂,效果也不太理想。我想能不能通过多个简单的方法,准确的判断网页否加载完成呢?
下面看看我的代码:
复制代码
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)
{
sUrl
=
webBrowser1.Url.ToString();
if
(sUrl.Contains("res"))
//这是判断没有网络的情况下
{
return
false;
}
else
{
return
true;
}
}
continue;
}
i=0;
}
}
}
复制代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式