当前位置:  开发笔记 > 后端 > 正文

.Net WebBrowser.DocumentText没有改变!

如何解决《.NetWebBrowser.DocumentText没有改变!》经验,为你挑选了3个好方法。

在我的vb.net程序中,我使用webbrowser向用户显示HTML预览.我以前在服务器上抓取HTML,然后返回异步线程并引发事件以使用我返回的HTML字符串填充WebBrowser.DocumentText.

现在我将其设置为获取客户端上的所有信息,而不必访问服务器,我正在尝试提升相同的事件.我看着代码经过,它有正确的HTML字符串和一切,但当我尝试做

browser.DocumentText = _emailHTML

DocumentText的内容仍为" "

我只是想知道为什么没有设置DocumentText.有人有什么建议吗?



1> David Mohund..:

请尝试以下方法:

browser.Navigate("about:blank");
HtmlDocument doc = browser.Document;
doc.Write(String.Empty);
browser.DocumentText = _emailHTML;

我发现WebBrowser控件通常需要初始化为about:blank.导航到不同类型的内容(例如text/xml到text/html)之间也需要做同样的事情,因为渲染器是不同的(mshtml用于text/html,其他用于text/xml).

(来自http://geekswithblogs.net/paulwhitblog/archive/2005/12/12/62961.aspx)


我很感激帮助.事实证明我能够通过browser.Document.OpenNew(True)得到它.你是对的 - 我需要初始化它.
为什么doc.Write后跟DocumentText = ...?仅仅做一个浏览器就不够了.Document.Write(_emailHTML);?

2> 小智..:

我发现了以下内容并且有效!

    webBrowser.Navigate("about:blank");
    webBrowser.Document.OpenNew(false);
    webBrowser.Document.Write(html);
    webBrowser.Refresh();


这是为我工作的那个。我唯一缺少的是刷新。

3> 小智..:

我找到了解决这个问题的最佳方法,如下:

if (this.webBrowser1.Document == null)
{
    this.webBrowser1.DocumentText = htmlSource;
}
else
{
    this.webBrowser1.Document.OpenNew(true);
    this.webBrowser1.Document.Write(htmlSource);
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有