如何在添加元素后更新WebBrowser控件的文档文本?

时间:2016-08-09 15:21:32

标签: c# winforms webbrowser-control

在表单加载中我有这行代码

webBrowser1.DocumentText = "<table id='table1'><tr><td>hello</td></tr></table>";

在按钮上单击Iam,这些代码行添加了新的表格行。 但是在消息框中没有反映出变化。我应该手动更新webbrowser内容,如文档文本。如果是这样怎么办?

    HtmlElement element = webBrowser1.Document.GetElementById("table1");
    HtmlElement mTBody = element.FirstChild;
    HtmlElement mTR = webBrowser1.Document.CreateElement("tr");
    HtmlElement mTD1 = webBrowser1.Document.CreateElement("td");

    mTD1.InnerText = "Teamviewer Id1";
    mTD1.SetAttribute("id", "TeamviewerId1");

    mTR.AppendChild(mTD1);
    mTBody.AppendChild(mTR);

    MessageBox.Show(webBrowser1.DocumentText);

1 个答案:

答案 0 :(得分:0)

从Web浏览器异步提取内容。

尝试订阅DocumentCompleted事件,然后从那里显示DocumentText

选项1

添加元素后刷新您的网络浏览器:

webBrowser1.Refresh(WebBrowserRefreshOption.Completely);

然后从DoucmentText事件

获取DocumentCompleted
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    MessageBox.Show(sender.DocumentText);
}

选项2

如果上述选项无效或未触发DoucmentCompleted事件。

在按钮点击事件上添加元素后,尝试导航到您的网址。

webBrowser1.Navigate(url); //Instead of the refresh

然后在DocumentCompleted事件中,检查网址是否匹配(因为有多个框架会多次触发DocumentCompleted事件),然后显示您的DocumentText

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (e.Url.Equals(webBrowser1.Url)) {
            MessageBox.Show(sender.DocumentText);
        }
    }