如何将 WebBrowser 从 IE 更改为 Firefox

Posted

技术标签:

【中文标题】如何将 WebBrowser 从 IE 更改为 Firefox【英文标题】:How to change WebBrowser from IE to Firefox 【发布时间】:2010-12-29 07:17:01 【问题描述】:

我正在使用 System.Windows.Forms.WebBrowser 开发 C# .NET 应用程序。

IE 没有正常响应,所以我想换成 Mozilla Firefox。

我该怎么做?

【问题讨论】:

【参考方案1】:

2016 年更新:

我可以建议还有 3 个其他选项仍在积极开发中:

1. BrowseEmAll.Cef

一个 .Net 组件,可用于将 Chrome 引擎 集成到您的 .Net 应用程序中。基于CefGlue,但更新到最新的 Chrome 版本要快一些。此外,还有一个商业支持选项可供某些人使用。当然组件本身是开源的

2. BrowseEmAll.Gecko

另一个 .Net 组件,可用于将 Firefox 引擎 集成到您的 .Net 应用程序中。这是基于Geckofx,但与当前版本的 Geckofx 不同,它适用于 Firefox 的正常发行版本。要使用 Geckofx,您需要自己构建 Firefox。再次提供商业支持,但组件本身是完全开源

3. BrowseEmAll Core API

在您的 .Net 应用程序中需要所有不同的浏览器? BrowseEmAll Core API 可以将 Chrome、Firefox、Webkit 和 Internet Explorer 集成到您的应用程序中。这是一个商业产品,但请注意。

(完全披露:我在这家公司工作,所以我所说的一切都持保留态度)

【讨论】:

【参考方案2】:

System.Windows.Forms.WebBrowser 只是 ActiveX 控件的托管包装器:SHDocVw.WebBrowser。包装器并非没有错误,并且可能无法提供您需要的可扩展性。如果您有一个可行的解决方案,我不建议将其移植到使用System.Windows.Forms.WebBrowser

IE 不是基于 .Net 的,因此您不能使用System.Windows.Forms.WebBrowser 来控制 IE 中的任何内容。事实上,我什至不建议在 .Net 中连接 BHO,因为在 IE 进程中只能运行一个版本的 CLR,而您的 BHO 可能会在意外版本的 CLR 上运行。

【讨论】:

【参考方案3】:

您无法使用 System.Windows.Forms.WebBrowser 控件实现此目的。似乎有办法将 Gecko 渲染引擎嵌入到 WinForms 应用程序中。

看到这个问题:Replacing .NET WebBrowser control with a better browser, like Chrome?

【讨论】:

【参考方案4】:

您需要用此项目替换 WebBrowser 控件:http://code.google.com/p/geckofx/

【讨论】:

【参考方案5】:

我只是在查看GeckoFX 和WebKit.NET,您可能会对它们感兴趣。如果您想更改 Default WebBrowser 控件,我认为这是不可能的。

【讨论】:

【参考方案6】:

你不能。

WebBrowser 控件是 IE ActiveX 控件的包装,不能轻易地换成 Mozilla。

但是,您可以查看Mozilla ActiveX Control

【讨论】:

使用 ActiveX 控件将是一个痛苦的过程。有人已经创建了托管包装器:code.google.com/p/geckofx【参考方案7】:

不确定这是否可能/容易,但 mono 使用 Gecko# 来实现其 System.Windows.Forms.WebBrowser 版本。也许您可以重用它或从该代码中删除一些可用的部分?

【讨论】:

以上是关于如何将 WebBrowser 从 IE 更改为 Firefox的主要内容,如果未能解决你的问题,请参考以下文章

如何在超链接单击 [重复] 上将浏览器从 IE 更改为 Chrome

在 IE 中,div 的显示属性不会从“无”更改为“块”

在将jquery更改为3.1.1之后,在IE 10中页面加载后几秒钟内页面没有响应

在eclipse中将java doubles更改为浮点数

C#中webbrowser怎么禁用默认调用的IE浏览器缩放功能

将 json 转换为 C# 数组?