如何判断IE真正渲染内核(文档模式)

2025-10-19 01:56:57

1、IE自IE8开始区分浏览器模式与文档模式(早期叫文本模式),允许用户手动变更两个模式,也允许开发者通过 X-UA-Compatible 标记需要使用的文档模式,同时还提供了 document.documentMode 属性以供开发者判断正在使用的文档模式。

2、由于文档模式决定了CSS和JS渲染引擎,当我们为兼容工作判断不同IE版本时,不需要通过 UA 判断,直接通过 document.documentMode 属性即可。

文档模式只代表当前使用的渲染内核,并不等于当前浏览器的真正版本。例如,当IE11模拟IE8时,文档模式返回结果会是8。

需要注意的是,文档模式决定了 if IE 条件注释会不会执行,如果文档模式是 8,那么 <!––[if IE 8]> 语句也会执行。

3、document.documentMode 属性值是数字,如下所示:

5     怪异模式时返回5

7     模拟IE7时返回7

8     模拟IE8或当前是IE8时返回8

9     模拟IE9或当前是IE9时返回9

10   模拟IE10或当前是IE10时返回10

11   当前是IE11时返回11

1、判断当前文档模式是否IE8标准模式,代码如下所示:

<script>

    if (document.documentMode == 8) {

        alert('当前文档模式是IE8,你正在使用IE8访问,或者设置了IE8兼容性识图。');

    } else {

        alert('当前文档模式不是IE8');

    }

</script>

2、如果文档模式低于等于IE10就跳转到IE浏览器升级提示页,代码如下所示:

<script>

/*@cc_on 

    if (! document.documentMode || document.documentMode <= 10) {

        window.location.href='http://support.dmeng.net/upgrade-your-browser.html?referrer='+encodeURIComponent(window.location.href);

    }

@*/

</script>

@cc_on 是 IE10 及旧版IE特有的条件编译语句,因此可以用来判断是否除IE11版本以外的IE浏览器。

! document.documentMode 是为了匹配 IE6/IE7 ,因为 document.documentMode 是 IE8 才新增的属性,在 IE6/IE7 中没有。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢