在我的vb.net程序中,我使用webbrowser向用户显示HTML预览.我以前在服务器上抓取HTML,然后返回异步线程并引发事件以使用我返回的HTML字符串填充WebBrowser.DocumentText.
现在我将其设置为获取客户端上的所有信息,而不必访问服务器,我正在尝试提升相同的事件.我看着代码经过,它有正确的HTML字符串和一切,但当我尝试做
browser.DocumentText = _emailHTML
DocumentText的内容仍为" "
我只是想知道为什么没有设置DocumentText.有人有什么建议吗?
请尝试以下方法:
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)
我发现了以下内容并且有效!
webBrowser.Navigate("about:blank"); webBrowser.Document.OpenNew(false); webBrowser.Document.Write(html); webBrowser.Refresh();
我找到了解决这个问题的最佳方法,如下:
if (this.webBrowser1.Document == null) { this.webBrowser1.DocumentText = htmlSource; } else { this.webBrowser1.Document.OpenNew(true); this.webBrowser1.Document.Write(htmlSource); }