Javascript 使用meta标记";“X-UA-Compatible”;

Javascript 使用meta标记";“X-UA-Compatible”;,javascript,.net,internet-explorer,c#-4.0,Javascript,.net,Internet Explorer,C# 4.0,我曾在多个博客上看到关于使用meta标记更改internet explore的渲染模式/版本的文章,因为IE9或IE10是多个浏览器的组合 但对我来说,这个标签似乎只能在完整的Internet explorer浏览器中使用,而不能在.net浏览器控件中使用。我的观察正确吗 我必须覆盖浏览器控件选择的默认浏览器版本(从7到8)。更改/添加注册表参数不是一个选项。只有当这是部分的第一个元素时,此元标记才能正常工作 如果通过META标记或HTTP响应头指定X-UA-Compatible值,则文档模式

我曾在多个博客上看到关于使用meta标记更改internet explore的渲染模式/版本的文章,因为IE9或IE10是多个浏览器的组合

但对我来说,这个标签似乎只能在完整的Internet explorer浏览器中使用,而不能在.net浏览器控件中使用。我的观察正确吗


我必须覆盖浏览器控件选择的默认浏览器版本(从7到8)。更改/添加注册表参数不是一个选项。

只有当这是
部分的第一个元素时,此元标记才能正常工作

如果通过META标记或HTTP响应头指定
X-UA-Compatible
值,则文档模式将更改为指定的值,就像在桌面IE中一样

与使用F12开发者工具更改浏览器模式不同,文档模式不会影响发送到服务器的用户代理字符串。在IE的完全修补版本中,
X-UA-Compatible
设置确实会影响
navigator.userAgent
属性中显示给JavaScript的
用户代理
,但如果使用F12开发者工具更改
文档模式
设置,则该值不变

您可以查看发送
X-UA-Compatible
的结果

第一个页面不指定文档模式(因此获得默认值),而后一个页面指定文档模式为IE9。如果单击文档模式链接,您可以看到文档模式对
X-UA-Compatible
指令敏感,即使请求头中的用户代理未更改

相反,要更改应用程序中Web浏览器控件的浏览器模式,必须设置
功能\u浏览器\u仿真
注册表项,指定可执行文件的名称和所需模式


客户要求“不得更改注册表”是愚蠢的。有理由说:“我们不希望任何注册表操作会影响IE或其他程序。”有理由说:“我们根本不希望任何注册表操作”,因为仅仅运行可执行文件的行为就会导致注册表的更改

为什么“添加注册表参数”(特别是
Feature\u Browser\u Emulation
)不可能?这是解决此问题的正确方法。EricLaw,添加注册表参数是可能的,但不是一个选项,客户不希望在注册表中进行任何操作。tpolyak,您是否尝试过此方法,因为meta标记在.net web浏览器控件中似乎对我不起作用,它只在Internet explorer浏览器中起作用。Meta标记是
+1和@Manish中的第一行,您不需要注册表的管理员权限,就可以运行此功能,
HKEY_当前用户
hive就足够了。我发现这是错误的。如果您通过JS navigator.userAgent(不是服务器端)访问IE8,那么将X-UA-Compatible设置为IE8确实会呈现IE8用户代理@ShaneN:我已经澄清了这个答案。