WebBrowser怎样检测网站是否加载完毕
1个回答
展开全部
通过每一次读取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();
下面看看我的代码:
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();
云创
2023-07-25 广告
2023-07-25 广告
代码静态分析服务的费用因服务提供商、服务类型、服务范围、服务时长等因素而异,因此没有一个固定的费用标准。以下是一些可能影响费用的因素:1. 服务提供商:不同的服务提供商可能会有不同的收费标准和服务质量。2. 服务类型:不同的代码静态分析服务...
点击进入详情页
本回答由云创提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询