【问题标题】:Embedded WebBrowser in Windows Form C# projectWindows 窗体 C# 项目中的嵌入式 WebBrowser
【发布时间】:2011-06-09 15:09:21
【问题描述】:

我有一个带有嵌入式 Web 浏览器控件的表单。我目前正在使用WebBrowser 并像这样使用它:

webBrowser1.Navigate("about:blank");
HtmlDocument doc = this.webBrowser1.Document;
doc.Write(string.Empty);
String htmlContent = GetHTML();
doc.Write(htmlContent);

这会将 HTML 正确写入 Web 浏览器控件,但它从不清除现有数据,它只是追加,所以我最终将 N 个网页堆叠在一起。

这是最好的控件吗?如果是,为什么不清除现有数据?

【问题讨论】:

    标签: c# winforms webbrowser-control


    【解决方案1】:

    你需要使用:

    HtmlDocument doc = this.webBrowser1.Document.OpenNew(true);
    

    现在文档的内容将在写入之前被清除。

    所有对 Write 的调用都应该在之前 通过调用 OpenNew,这将清除 当前文件及其所有 变量。您拨打Write 将 在其创建一个新的 HTML 文档 地方。只改变一个特定的 文件的一部分,获取 适当的 HtmlElement 并设置其 InnerHtml 属性。

    【讨论】:

      【解决方案2】:

      是的。

      如果需要清除内容,应该可以调用 Clear 方法。

      查看本文了解详细信息和示例代码:
      http://www.codeproject.com/KB/miscctrl/simplebrowserformfc.aspx

      【讨论】:

        【解决方案3】:

        在页面之间调用HtmlDocument.OpenNew:

        OpenNew 会清除之前加载的 文件,包括任何相关的 状态,例如变量。它不会 在 WebBrowser 中引发导航事件 被提升。

        【讨论】:

          猜你喜欢
          • 2015-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-29
          • 1970-01-01
          • 2013-10-24
          • 1970-01-01
          相关资源
          最近更新 更多