我有一个嵌入了多个WebBrowser控件的VB.Net应用程序,他们都试图访问不同的站点。在IE7文档模式下加载时,其中一个站点完全被破坏,因此我确保将功能浏览器仿真注册表项更改为最新安装的IE版本(IE10或IE11)。这很好用,现在所有的控件都在最新版本的IE中运行。不幸的是,其他控件的网页必须在IE7 /兼容模式下运行,否则页面有错误。只需注意,需要IE7 /兼容模式的网页不会指定此项,也不会自动使IE使用兼容模式。
这意味着我有一个仅适用于IE7文档模式的WebBrowser,以及一个仅在同一个应用程序中使用IE8 +文档模式的WebBrowser。
我尝试/考虑过的事情:
如果没有特殊的图书馆,有没有办法实现这个目标?如果可能的话,我宁愿不必处理任何额外的依赖。
答案 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。