我遇到了多个有关使用元标记来更改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/