cho*_*bo2 3 internet-explorer internet-explorer-9
我正在看IE 9开发人员工具,当我点击浏览器模式时,我得到一个列表
IE 7
IE 8
IE 9
IE 9 Compatibility View
Run Code Online (Sandbox Code Playgroud)
那是做什么的?IE 9和IE 9兼容性视图有什么区别?
的主要区别是用户代理字符串.对于Internet Explorer 9,将发送新的和改进的 UA字符串:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
对于兼容性视图,将发送类似于以下字符串的内容:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Zune 4.7)
请注意兼容性视图UA字符串如何将浏览器标识为MSIE 7.0?文档模式不足以使兼容性视图按预期工作.这样做的原因是,如果您仍然告诉Web服务器您正在运行IE 9,那么您无法真正向后兼容- 它可能有一些服务器端代码,用于识别IE 7浏览器和菜单特定于该浏览器的内容.因此,如果用户单击"兼容性视图"图标,开发人员工具可让您查看网页的外观,而无需永久切换兼容性视图.
为了完整起见,还值得一提的是应用程序版本字符串以类似的方式更改.IE 9的应用版本字符串是:
5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
在兼容性视图中(可能因安装的软件而异):
4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Zune 4.7)
这些字符串与UA字符串非常相似,但客户端脚本可能引用此字符串而不是UA字符串.Trident/5.0无论兼容模式如何,仍然可以在部件的UA字符串和应用程序版本字符串中标识IE 9 .