Webbrowser判断页面加载完成

Webbrowser 请求加载页面,页面中包含各种资源,不能够很准确的判断加载是否完成,需要通过特定的方法判断。

1、使用计数器判断页面是否加载完成。精准可控。

 // 计数器
int  counter  =   0 ;

// 添加事件响应函数
this .webBrowser.Navigated  +=   new  System.Windows.Forms.WebBrowserNavigatedEventHandler(webBrowser_Navigated);

this .webBrowser.DocumentCompleted  +=   new  System.Windows.Forms.WebBrowserDocumentCompletedEventHandler( this .webBrowser_DocumentCompleted);

// 事件响应函数
private   void  webBrowser_Navigated( object  sender, WebBrowserNavigatedEventArgs e)
 {
    counter ++ ;
}

private   void  webBrowser_DocumentCompleted( object  sender, WebBrowserDocumentCompletedEventArgs e)
 {
    counter -- ;

     if  ( 0   ==  counter)
     {
      // 加载完毕
    }
} 

在执行一个加载完成操作时,在执行完毕后最好立马注销事件。

 

2、通过控件状态及控件文档URL地址判断,此方法经实际测试,可满足大多数情况。简单。

this .webBrowser.DocumentCompleted  +=   new  System.Windows.Forms.WebBrowserDocumentCompletedEventHandler( this .webBrowser_DocumentCompleted);

private   void  webBrowser_DocumentCompleted( object  sender, WebBrowserDocumentCompletedEventArgs e)
 {
     if (Browser.ReadyState == WebBrowserReadyState.Complete&&e.Url==webBrowser.Document.Url)
     {
         //加载完成
     }
} 

 

posted @ 2014-08-10 11:40  archip  阅读(642)  评论(0编辑  收藏  举报