如何判断 IE 的真正版本(非兼容模式下的版本,IE8+)
程序员文章站
2022-06-09 19:50:14
...
有以下三种行为:
1. 使用真正的 IE8 打开画面A
2. 使用 IE10 打开一个画面A
3. 使用IE10,但是设定使用 IE8 兼容模式来打开画面A
对于以上三种行为,请考虑以下两个问题:
① 如果判断IE判断是以何种文档模型来渲染打开的页面的
② 如果判断IE的真正版本
对于问题①,大家可能都知道了,我们可以通过以下方式来判断
window.document.documentMode
对于行为 1 和 3 ,得到的值是 8, 即使用 IE8 的文档模型来渲染了页面。
对于行为2, 得到的值是 10,说明使用的是IE10 文档模型来渲染的页面。
而正是由于行为1 和 3 返回的值都是8,那么,我们要如何来判断,使用的IE 是真正的 IE8 ,而不是IE10的IE8兼容模式呢?
对于这个问题,可以采用如下方式
window.navigator.userAgent
这个属性的值中,有一个“Trident”字段,在IE8下,它是4.0,在IE9下是 5.0,在IE10下是6.0,在IE11下是7.0.
所以,判断IE的真正版本(非兼容模式下的版本),我们就可以通过这个字段来进行。
参考资料:
http://social.msdn.microsoft.com/Forums/ie/en-US/33e0ed49-11fb-4d91-857c-a35496e90075/why-trident40?forum=iewebdevelopment