如何判断 IE 的真正版本(非兼容模式下的版本,IE8+)

 

有以下三种行为:

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

 

你可能感兴趣的:(Web,HTML5)