Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 是否可以将WebBrowser控件的渲染引擎更改为旧版本?_Vb.net_Winforms_Internet Explorer_Internet Explorer 9_Webbrowser Control - Fatal编程技术网

Vb.net 是否可以将WebBrowser控件的渲染引擎更改为旧版本?

Vb.net 是否可以将WebBrowser控件的渲染引擎更改为旧版本?,vb.net,winforms,internet-explorer,internet-explorer-9,webbrowser-control,Vb.net,Winforms,Internet Explorer,Internet Explorer 9,Webbrowser Control,我有一个带有webbrowsercontrol的应用程序。此webbrowsercontrol将加载与IE9不兼容的页面。(无法更改,因为它是由其他人生成的)默认情况下,VB.NET 2010的webbrowser控件使用IE9 renderengine,并且可以在某种兼容模式下运行。不幸的是,即使在兼容模式下,页面也无法工作。有没有办法将webbrowser控件与真正的IE7或IE8渲染引擎一起使用?谢谢 更新 解释问题:我有一个包含JAVA小程序的页面。这个java小程序有一个带有文本框的弹

我有一个带有webbrowsercontrol的应用程序。此webbrowsercontrol将加载与IE9不兼容的页面。(无法更改,因为它是由其他人生成的)默认情况下,VB.NET 2010的webbrowser控件使用IE9 renderengine,并且可以在某种兼容模式下运行。不幸的是,即使在兼容模式下,页面也无法工作。有没有办法将webbrowser控件与真正的IE7或IE8渲染引擎一起使用?谢谢

更新

解释问题:我有一个包含JAVA小程序的页面。这个java小程序有一个带有文本框的弹出窗口。此文本框被强制保持在前面,直到关闭。这在IE7和IE8中运行良好。然而,在IE9中,如果我移动浏览器窗口或访问任何其他应用程序,这个消息框就会跳到后面。不能再点击了。我的webbrowser(IE9运行任何仿真)不工作。即使我模仿IE7或IE8,它也应该出现在IE9上

有没有办法将webbrowser控件与真正的IE7或IE8渲染引擎一起使用

是的,但它要求您将安装在计算机上的Internet Explorer版本降级为7或8版,这不利于提供友好的安装体验

问题是WebBrowser控件始终使用安装在计算机上的IE版本,因为它只是将渲染委托给本机库shdocvw.dll,与IE本身使用的相同。在你的情况下,这似乎是IE 9。但是,默认情况下,它也在IE7兼容模式下运行。可以通过更改,但不能更改渲染引擎的版本

不幸的是,这意味着你运气不好,因为在一台计算机上运行多个版本的IE不是而且从来都不是一种受支持的配置。它用于测试目的,但它需要额外的软件,而且这些版本不能很好地配合使用。当然,对于一个支持独立IE浏览器而另一个驱动.NET WebBrowser控件来说,这还不够好

修复代码,使其与IE9一起正常工作是最好的选择。IE9代表着微软向标准兼容浏览器的缓慢发展,尽管它仍有一些怪癖,但值得支持。我知道你说网站代码是由“其他人”维护的,但我建议你向他们提出支持请求,因为他们的代码有问题,需要修复。如果您(或他们)需要这方面的帮助,他们可以向我们的代码忍者web标准专家咨询堆栈溢出问题

或者,您可以探索用替代控件替换WebBrowser控件。对于.NET Framework,有几个很好的方法,包装了其他流行浏览器使用的渲染引擎。例如:

  • 是谷歌Chrome和苹果Safari使用的WebKit引擎的包装
  • 是Mozilla Firefox使用的Gecko渲染引擎的包装器
  • 是壁虎的替代包装

不幸的是,如果您正在处理的代码写得太糟糕,以至于IE 9在遵守标准方面的微弱尝试让它屈服,那么切换到另一个更符合标准的浏览器的渲染引擎将不太可能带来很大的成功。

我见过我的一个朋友,调整他的注册表以使web浏览器控件使用IE7。这不是一个答案,但我认为这将是一个有助于你找到答案的方向。看看这个答案的第2点,为你指出正确的方向:谢谢各位。。但这两个答案都指向了模仿。不幸的是,这不起作用。更新主要帖子以解释兼容性问题是什么。你的GeckoFx链接是旧的。Geckofx积极维护,感谢您的回答!:)明天将在办公室研究替代方案:)