前輩好,
小弟目前有個需求,要在Web Base的環境下呼叫WebBrowser元件
已經完成解決初步的問題,可以順利的在ASP.NET上呼叫WebBrowser
但遇到的問題是去判斷網頁是否讀取完成
通常遇到這種問題,在Window Form上面主要有兩種做法
1) 在DocumentCompleted事件上做處理
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
//doSomeThing
}
=========================================================
2) 判斷ReadyState
webBrowser1.Navigate("http://www.test.com.tw/");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
//doSomeThing
==========================================================
小弟平常習慣已做法2去判斷是否讀取完成
因閱讀上較直覺,並且可以完成在讀取完成前系統是等待狀態
不會去執行到其他程式碼(因Navigate事件可能在迴圈中)
但轉移到WebBase上的時候
做法1仍可正常運作
但做法2卻會失敗,變成無窮迴圈
小弟猜想應該是Application.DoEvents此函數在ASP.NET上
因呼叫WebBrowser元件的方式與Window Form不同
所以無法達到預期的效果
是以小弟的問題是
如何在ASP.NET上面使用WebBrowser
並且在讀取文件的時候程式可以暫停
能夠使用邏輯方式去判斷是否文件讀取完成後才繼續
(如判斷ReadyState == Complete)
而不是用呼叫DocumentComplete的方法去判斷
感謝前輩指點了
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.141.36