2014-02-11 101 views
2

我使用WebBrowser控件,有一個名爲DocumentCompleted的事件,此事件針對網頁中的每個框架以及所有子文檔(例如JS和CSS)。檢測網頁何時滿載網頁瀏覽器控件c#

我的問題是如何檢測這個事件的最後一個條目,我的意思是如何檢測頁面何時被完全加載,並且這個事件不會再次觸發。

我看了這個有很多,我發現這樣一個解決方案:

void webBrowser1_DocumentCompleted(object sender, 
     WebBrowserDocumentCompletedEventArgs e) 
{ 
    if (e.Url.Equals(webBrowser1.Url)) { 
     // Here the page is fully loaded   
    } 
} 

但這並不適用於所有的網址工作!

任何人都有一個想法如何實現?

thanx提前

+0

鑑於通過Javascript進行附加服務器查詢的網站數量在加載頁面後很難得到正確的結果。 – Crono

+0

您可以在第一次點擊DocumentCompleted後解除綁定事件,以確保它僅被觸發一次。然後重新調用webBrowser1.Navigate(url)之前重新綁定; – scheien

+0

也許,這可以幫助http://stackoverflow.com/questions/635948/c-sharp-webbrowser-control-get-document-elements-after-ajax –

回答

2

DocumentComplete事件可以用於與框架的文檔被解僱多次。與此同時,對於特定的文檔,HTML DOM window.onload事件將僅被觸發一次。 Here is how使用這個事實來處理首頁加載的完成。

OTOH,有些頁面相當複雜,並且使用連續的AJAX更新。嚴格地說,並不總是有可能確定一個像這樣的頁面何時完成其渲染,具有100%的可能性。但是,您可以關閉,here is how