我以winforms形式主持MSIE。不幸的是,它坚持在兼容模式下运行,无论我是否在独立IE中给它一个在IE8模式下运行的页面。这样做的结果是,在独立的MSIE中正确呈现的某些内容会在托管控件中完全错位并混乱。
除了文档类型等之外,还有一些神奇的方法告诉webbrowser我希望它以与在独立的MSIE中加载它相同的方式呈现页面吗?
我不想使用注册表项覆盖(http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx),因为我的表单是另一个应用程序的加载项的一部分。我不想更改主应用程序的IE行为,我不想为在该应用程序下运行的其他加载项更改它。我只希望这在我的表单中托管的浏览器中工作,而不是在整个应用范围内,而不是在整个流程范围内。
答案 0 :(得分:10)
我没有对此进行测试,但是如何使用META标记以及HTTP-EQUIV属性将X-UA-COMPATIBLE
值设置为IE=8
,指示Web浏览器以IE 8标准模式显示页面。一个例子是:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
以下article中的这一行似乎应该可行。
默认情况下,托管的应用程序 WebBrowser控件打开 IE7模式下基于标准的页面 除非页面包含 适当的X-UA兼容标头。 您可以通过添加名称来更改此设置 应用程序可执行文件的 FEATURE_BROWSER_EMULATION功能 控制键并设置值 相应
答案 1 :(得分:3)
要更改应用程序中运行的Web浏览器控件的默认行为以匹配IE本身的操作,您必须设置 FEATURE_BROWSER_EMULATION 功能控制键。
例如,您可以模仿IE8的行为(允许网站以IE8标准模式呈现),如下所示。
内 HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl
创建名为 FEATURE_BROWSER_EMULATION
的新密钥在该密钥内,添加一个值为 8000 的新REG_DWORD,其中包含应用程序可执行文件的名称。 E.g:
"YourApp.exe" = dword 8000 (Hex: 0x1F40)
进一步详情如下: http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx