2011-09-08 52 views
2
private void button1_Click(object sender, EventArgs e) 
{ 
    webBrowser1.Navigate(textBox1.Text); 
} 

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    WebBrowser web = (WebBrowser)sender; 
    richTextBox1.Text = web.DocumentText; 
} 

以上是示例代碼。 它給當前打開的所有文本,如果內容由JavaScript更新,它可見但Document.Text不更新。如何抓取內容通過JavaScript更新WebBrowser

請幫助球員

+0

什麼是「javascript」更新?您應該先等待它運行JavaScript代碼或自己運行它。那麼你可以看到文件。 (http://msdn.microsoft.com/en-gb/library/system.windows.forms.webbrowser.document(v=VS.100).aspx) –

+0

JavaScript運行從Web瀏覽器狀態從根本上異步如您在您的可觀察程序。沒有任何事件表明它正在運行或停止。唯一可觀察到的副作用是它對DOM的修改。一個足夠長的計時器是解決這個問題的典型方法。 –

回答

4

我有同樣的問題。使用下面的示例代碼:

IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2; 
string content = doc.body.innerText; 

此外,添加MSHTML到項目的引用(如果你不知道如何添加refernce,它只是谷歌)。

實際上,無論何時使用此代碼,doc變量中的值都是webbrowser內容的更新版本。

好運