2011-09-08 53 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内容的更新版本。

好运