.NET WebBrowser控制javascript

时间:2009-02-02 16:45:33

标签: c# .net javascript browser

有没有人知道.NET应用程序中的webBrowser activex控件是否存在某种错误或问题,在这种情况下,嵌入式浏览器会加载一个依赖于javascript来播放音乐预览的网页。它只运行一次,但如果您导航到系统中的新页面,它将停止工作。

只在普通的IE浏览器中查看同一个站点,结果没有任何错误(在多个不同类型的系统上进行测试)。


它发生在几种不同的操作系统上,XP 32和64位,Vista,Windows 7。

它也不是一个java applet,只是jQuery和带有一些JS的长尾视频播放器将预览链接绑定到播放器。我很困惑为什么它有时会起作用而不是其他人。

它也是一个庞大的现场系统并且收到很多抱怨。

3 个答案:

答案 0 :(得分:4)

让我直截了当地告诉你。修复了WebBrowser控件上的默认呈现引擎,以确保所有平台之间的兼容性。

基本上,如果你安装的浏览器是IE 7 - IE 9,那么使用的渲染引擎只是IE 7.0(默认情况下)。

但是,如果你安装的IE版本是IE 6或更低版本,那么使用的渲染引擎是IE 4.0,除非你设置它,否则。

有一种误解,认为WebBrowser控件使用当前安装的任何内容(当前的IE版本),但事实并非如此,因为他们这样做是为了减少向后兼容性问题。您可以通过在普通浏览器中转到http://www.whatsmyuseragent.com,然后在WebBrowser控件中再次访问该网站,看到(作为证明)这确实是您的问题,您将看到它显示为MSIE 7.0 :)。 / p>

我怀疑你的用户(和你)在IE 6.0上会遇到你提到的问题,因为他们使用的渲染引擎是IE 4.0(如果他们在IE 7到IE9之间运行任何东西,那么IE 7) 。这真的很糟糕,特别是如果它们在IE 6上,你应该让他们升级他们的浏览器,如果他们是IE 6,那么,IE 7.0将被使用。

我不确定当IE 10.0出现时,WebBrowser控件的默认引擎是否会转到10.0(如果系统上安装了10.0),或者即使在IE 10.0发布后它仍将保留为IE 7.0,一旦它出来我们将不得不看到。但是,如果我们根据以前的经验猜测,我怀疑IE 10.0将是使用IE 7.0渲染引擎的最后一个版本,并且当IE 11出来时,默认渲染引擎将保留IE 11之间所有IE版本的IE 11 &安培; IE 14.这只是通过推断他们过去所做的事情来猜测。

您可以将WebBrowser控件设置为使用当前安装的Internet Explorer版本;如果您想了解有关如何执行此操作的更多信息,或者如何进一步修复渲染引擎,请告诉我,我会帮助您解决此问题。

答案 1 :(得分:0)

您使用的是哪个版本的.net?

还有哪个操作系统?

我在Vista中注意到Java applets <applet>标签会导致灾难性问题。我相信这是因为它使用Microsoft JVM进行Java处理,现在恰好不支持。在XP中不会发生这种情况

答案 2 :(得分:0)

Web浏览器控件使用与安装的Internet Explorer版本相同的shell,但根据我的经验,完整的浏览器可以更优雅地处理事务。

值得为JavaScript添加一些调试以查看问题所在 - 是因为longtail没有注册为加载,因此没有事件绑定,或者是因为事件有问题。