在Windows系統上,微軟提供了相當好用的WebBrowser Control供程式設計師使用,而其中的 DocumentComplete事件更是不可或缺的要件之一,但是在處理有Frames的網頁時,往往觸發DocumentComplete時,網頁並未全部讀取完畢。

先說明,其實標題有誤,這並不是誤判..只是DocumentComplete的運作方式比較特別,詳情可以參考msdn

http://msdn.microsoft.com/workshop/browser/webbrowser/reference/events/documentcomplete.asp

http://dev.csdn.net/develop/article/13/13449.shtm

在上面的網頁中有提供一些解決,但是我覺得並不是最簡單的,其實應該只要用一個count,紀錄 DocumentComplete的次數是否跟frames的數量一樣多即可,原始碼如下:

private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
{

mshtml.HTMLDocument HTMLDoc = (mshtml.HTMLDocument) this.axWebBrowser1.Document;
if (this.iFramesCount == HTMLDoc.frames.length)

{

this.iFramesCount = 0 ;

//Anything you want to do

}

else

{

this.iFramesCount++;

}

}

[@more@]

Facebook Comments Box