【问题标题】:.NET Html viewer/web browser control alternatives.NET Html 查看器/Web 浏览器控件替代方案
【发布时间】:2011-03-15 07:39:10
【问题描述】:

我目前使用 .NET 中的 IE ActiveX(网络浏览器)控件在我的应用程序中显示 HTML,但它非常慢(消耗大量虚拟内存),而且非常有限,我想用一个完全托管的 HTML 查看器。

这是对Is there any better web browser control in C# (.NET)? 的不同请求,因为它与其他嵌入式浏览器(Firefox/Gecko)有关。我不想嵌入浏览器,我想要一个管理得当的控件。


更新(2011 年 4 月 13 日):This post Jeff Atwood 解释了部分原因,因为那些不清楚为什么这很重要/需要的人。

【问题讨论】:

  • 您正在寻找一个完全用托管代码编写的浏览器?我不知道一个。您可以做的最好的事情是为现有的 Web 浏览器提供一个 .NET 包装器。目前尚不清楚为什么这对您来说是不可接受的。
  • @Code Gray - 一个完全用托管代码编写的浏览器控件,是的。它是否需要像主流浏览器一样功能丰富,根本不需要。到目前为止,我对嵌入式浏览器的问题只是大小,最小的浏览器会使我当前的系统大小增加一倍,它们会增加大量开销(IE 虚拟内存使用量是我的应用程序其余部分的 4 倍),而且包装器很差,如果你想要认真对待它。
  • 我并不是说这听起来很粗鲁,但这有点愚蠢。用完全托管代码编写的浏览器如果不是比用本机代码编写的浏览器臃肿的话,那将是任何东西。使用托管控件肯定会有更多 开销。我的猜测是明显更多,但实际上没有见过,很难确定。我了解您不喜欢 IE;我也不。但是还有其他可用的好的包装器,您应该认真考虑。你不会找到用 .NET 编写的浏览器。
  • @Code Gray - 认为你没有抓住重点。第一个膨胀非常广泛,我对文件大小的膨胀感到满意,但我想避免像虚拟内存问题这样的事情,这在所有包装器中都是巨大的。其次,拥有一个托管代码浏览器(我们在这里也没有讨论完整的实现,只是一个 HTML 查看器/解析器)意味着可以轻松更改代码。例如,如果我想添加对 HTML11 的支持,那么我可以。考虑到这存在于 JAVA 和 Delphi 中,它表明需要并且可以完成 - 只是不确定是什么阻止了 .NET 人这样做。

标签: .net browser


【解决方案1】:

找到 Jeff 的帖子后,我翻阅了一堆乱七八糟的 cmets,找到了 HTMLRenderer,这是一个 codeplex 解决方案。它具有 CSS 2.1 支持和 HTML 4.1 支持,并且是免费的和 OSS(BSD License)。遗憾的是代码乱七八糟,但只有一个部分确实令人担忧,其余部分可以清理。

【讨论】:

  • 我想创建一个pure css tree,但不幸的是这个东西并没有以同样的方式呈现它。
【解决方案2】:

我认为最好的方法是将 Webkit 端口用于 .NET

http://webkitdotnet.sourceforge.net/

有关 Webkit 本身的更多信息:

http://en.wikipedia.org/wiki/WebKit

【讨论】:

  • 如问题“我不想嵌入浏览器,我想要一个适当管理的控件”中所述。这是嵌入 webkit 的包装器。
  • 对不起,我不明白你的问题。
  • 您可以嵌入 Web 浏览器控件,然后使用 TinyMCE 等出色的 javascript HTML 编辑器之一来编辑 HTML
【解决方案3】:

你只是不会找到一个。 编写浏览器的复杂性非常高,尤其是在这个竞争激烈的市场中。

您可以尝试在 .Net 中运行纯 Java Web 浏览器,使用 iKVM

理想情况下,将这些浏览器之一移植到 .net 会很棒,但我也找不到任何参考。

两个纯 Java 浏览器:

  1. HotJava
  2. Lobo

【讨论】:

  • 我只是不明白将 Java 浏览器嵌入到 .NET 应用程序中如何让您获得任何好处。当然,这可能。但它并不比嵌入一个用本机代码编写的代码更好,比如 Webkit、Gecko 等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 2015-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多