谷歌的搜索让我陷入了一堆死胡同 我正在开发VBA中的Excel加载项,其中一部分涉及使用WebBrowser控件在表单中显示(已知)网页并访问其DOM组件。
不幸的是,这让我随心所欲地使用用户的Internet Explorer版本 对于我们的实际网页,我们可以使用Chrome Frame支持,允许IE用户以我们想要的方式查看页面而不必担心他们的浏览器版本,但WebBrowser控件没有看到浏览器插件。
我看过WebKit.NET和GeckoFX。 它们有点工作,但除非我完全遗漏了某些东西,否则它们似乎根本就没有Javascript或CSS引擎。或者(在GeckoFX的情况下),他们使用旧引擎。这使他们无用。
是否有任何ActiveX控件可以嵌入到VBA表单中,其形式类似于WebBrowser控件(使用类似 - 如果不相同的API),使用不同的呈现引擎来跟上最新版本的Mozilla / Chrome / Opera,仍然能正确支持Javascript和CSS吗?
谢谢!
(根据评论进行一些修改)
再次编辑:我从下面的一个答案中发现我正在看一个过时版本的GeckoFX,但最新版本看起来很有希望。但现在我有一个新的相关问题:如何在VBA中包含GeckoFX? Windows不允许我将其注册为COM对象。我是否必须以某种方式从源头自己构建它?或者是什么?
答案 0 :(得分:5)
答案 1 :(得分:0)
如果您希望它在老年人VBA中工作,则需要在ActiveX包装器中使用浏览器。
Mozilla ActiveX控件符合要求,但似乎已经死了。 (它存在于Mozilla Prism,现在是Chromeless,但它没有二进制下载。你可以从XULRunner源代码中自己构建它,但这可能并不简单。)
将GeckoFX构建为ActiveX控件可能并不太难。
答案 2 :(得分:-1)
如果您使用GeckoFX或Chrome Frame,您将受到用户Firefox或Chrome版本的支配。除了为用户指定基准版本之外,无法解决此问题。
如果你不能这样做,我建议你解决你的VBA代码的差异。
换句话说:使用IE WebBrowser控件,因为它保证安装在某个版本或其他版本中,并指定IE的最低版本(我建议每个人都应该拥有IE6)并通过检测来应对差异该版本并解决了与VBA的差异。