如何获取由JavaScript WebBrowser更新的内容

时间:2011-09-08 14:28:54

标签: c# webbrowser-control

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不会更新。

请帮助人

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。使用以下示例代码:

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

另外,将mshtml添加到项目的引用中(如果你不知道如何添加引用,只需google它)。

实际上,无论何时使用此代码,doc变量中的值都是webbrowser内容的更新版本。

祝你好运

答案 1 :(得分:0)

我猜想在 DocumentCompleted事件之后,正在修改内容的页面上执行的javascript正在发生;也许您可以尝试其他事件,例如“无效”。

WebBrowser.DocumentText也很多都没有反映对DOM的任何更改,您可能需要通过WebBrowser.Document属性导航DOM。

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document.aspx