2011-01-19 74 views
0

我正在使用瀏覽器並使用瀏覽器控件。 現在我在同一個控件中導航頁面1。使用瀏覽器控件的問題

但雖然我這樣做有時瀏覽器開始加載其他頁面之前第一頁已完全加載。而有時它會停止所有的執行,並且沒有頁面正在進行中。

我正在使用webBrowser1_DocumentCompleted事件來處理文檔,並且有時它已被多次加載。

所以有什麼解決方案,我可以檢查我的瀏覽器是忙工作還是瀏覽完成。

+0

哪個網頁瀏覽器控制? Windows窗體? WPF? – 2011-01-19 04:07:09

回答

4

我注意到,如果頁面使用框架,它會多次完成文檔。
您可以從WebBrowser1_DocumentCompleted事件參數中獲取已加載頁面的URL。

如果是,有多個幀,您可以用WebBrowser1.URL比較WebBrowser1_DocumentCompleted的URL的情況下

所以

if(e.URL == webBrowser1.url) { 
    // The main page is done loading 
} 

或者你可以嘗試檢查

WebBrowser1.ReadyState == WebBrowserReadyState.Complete 

一對夫婦我發現WinForms WebBrowser控件的陷阱是

當通過AJAX完成更改時,您有權訪問的DOM不會更新。

除非你做了一些額外的工作來檢測何時創建一個新窗口並將其放入一個標籤,(有一些關於如何做到這一點的文章,如果你需要它,我可以發送一個鏈接) 打開新頁面Windows將在新流程中啓動,因此您將失去抓取這些內容的能力,並且會失去會話,因此如果您登錄到網頁,則會在新窗口中註銷。

+0

謝謝jamiegs thatz我正在尋找的東西。 – 2011-01-20 08:48:08