.net 一个程序中的不同兼容版本';Web浏览器控件

.net 一个程序中的不同兼容版本';Web浏览器控件,.net,vb.net,visual-studio,webbrowser-control,.net,Vb.net,Visual Studio,Webbrowser Control,我有一个VB.Net应用程序,其中嵌入了多个WebBrowser控件,它们都试图访问不同的站点。其中一个站点在以IE7文档模式加载时已完全损坏,因此我确保将功能浏览器仿真注册表项更改为最新安装的IE版本,以供使用它的用户使用(IE10或IE11)。这非常有效,现在所有控件都在最新版本的IE中运行。不幸的是,另一个控件的网页必须在IE7/兼容模式下运行,否则该页面会出错。请注意,需要IE7/兼容模式的网页没有指定此选项,也不会自动使IE使用兼容模式 这意味着我有一个WebBrowser,它只适用于

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

这意味着我有一个WebBrowser,它只适用于IE7文档模式,还有一个在同一应用程序中只适用于IE8+文档模式

我尝试/考虑过的事情:

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

没有专门的图书馆有没有办法做到这一点?如果可能的话,我宁愿不必处理任何额外的依赖关系。

如果其他人在搜索中发现这个问题,我有一个潜在的解决方案。实际上,我们有几个客户也在做同样的事情(他们的应用程序使用.Net Framework浏览器控件),他们所做的就是利用IE11中称为企业模式的功能。发件人:

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

有一个参考说明如何创建定义此列表所需的XML

Microsoft还发布了一个工具(),以使管理此列表更容易-但是该工具需要安装在运行您的应用程序的任何计算机上但是,您可以使用该工具定义列表,然后将其导出并包含在应用程序中

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