一个程序的webbrowser控件中的不同兼容版本

时间:2015-08-10 16:06:16

标签: .net vb.net visual-studio webbrowser-control

我有一个嵌入了多个WebBrowser控件的VB.Net应用程序,他们都试图访问不同的站点。在IE7文档模式下加载时,其中一个站点完全被破坏,因此我确保将功能浏览器仿真注册表项更改为最新安装的IE版本(IE10或IE11)。这很好用,现在所有的控件都在最新版本的IE中运行。不幸的是,其他控件的网页必须在IE7 /兼容模式下运行,否则页面有错误。只需注意,需要IE7 /兼容模式的网页不会指定此项,也不会自动使IE使用兼容模式。

这意味着我有一个仅适用于IE7文档模式的WebBrowser,以及一个仅在同一个应用程序中使用IE8 +文档模式的WebBrowser。

我尝试/考虑过的事情:

  • 将网站添加到IE中的兼容性视图,然后重新启动应用程序(似乎忽略了这一点)
  • 使用所有不同版本的feature_browser_emulation键来查看是否允许其工作
  • (如果可能的话,还没弄清楚)不知何故,其他浏览器在不同的进程中运行,因此它可以单独设置密钥。
  • (不确定我是否这样做,但似乎没有用)将html注入需要IE7 /兼容模式的网站,告诉浏览器使用IE = EmulateIE7< meta>标签

如果没有特殊的图书馆,有没有办法实现这个目标?如果可能的话,我宁愿不必处理任何额外的依赖。

1 个答案:

答案 0 :(得分:0)

如果其他人在搜索中发现了这个问题,我有一个潜在的解决方案。我们实际上有几个客户正在做同样的事情(他们的应用程序使用.Net Framework浏览器控件),他们所做的是利用IE11中称为企业模式的功能。来自https://technet.microsoft.com/en-us/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-overview-for-ie11

  

企业模式是一种在Internet Explorer 11上运行的兼容模式,允许网站使用经过修改的浏览器配置进行渲染,该配置旨在模拟Windows Internet Explorer 8或Windows Internet Explorer 7,从而避免与编写的Web应用程序相关的常见兼容性问题。在较早版本的Internet Explorer上测试过。

https://technet.microsoft.com/en-us/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-1-guidance处有一个引用,解释了如何创建定义此列表所需的XML

Microsoft还发布了一个工具(Enterprise Mode Site List Manager),以便更轻松地管理此列表 - 但随后需要在运行应用程序的任何计算机上安装该工具。 ,您可以使用该工具定义列表,然后将其导出并包含在您的应用中..

除IE7 / IE8企业模式外,您还可以通过IE11将文档模式设置为IE5。