我遇到了多个有关使用元标记来更改Internet Explorer呈现方式/版本的博客,因为IE9或10是多个浏览器的组合。

>

但是对我来说,此标记似乎仅在完整的Internet Explorer浏览器中有效,而在.net浏览器控件中无效。我的观察正确吗?

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

最佳答案

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

与使用F12开发人员工具更改浏览器模式不同,文档模式不会影响发送到服务器的User-Agent字符串。在IE的完整修补程序版本中,X-UA-Compatible设置的确会影响User-Agent属性中显示给JavaScript的navigator.userAgent,尽管如果使用F12开发人员工具更改document mode设置,该值不会更改。

您可以通过查看浏览发送X-UA-Compatible的结果

http://webdbg.com/ua.aspx



http://webdbg.com/ua9.aspx

第一页未指定文档模式(并因此获得默认设置),而后一页将文档模式指定为IE9。如果单击“文档模式”链接,即使请求标头中的User-Agent不变,您也可以看到文档的模式对X-UA-Compatible指令敏感。

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

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

关于javascript - 使用元标记“与X-UA兼容”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18723870/

10-12 07:04