IE条件注释

Posted 过了这个村

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE条件注释相关的知识,希望对你有一定的参考价值。

页面根据是否IE浏览器来决定载入的js及版本:

 

非ie时=》

    <!--[if !IE]> <-->
    <script src="/assets/js/jquery-3.2.0.min.js" type="text/javascript"></script>
    <!--> <![endif]-->

ie时(特定版本)=》

    <!--[if lt IE 9]>
    <script src="/assets/js/html5shiv.min.js"></script>
    <script src="/assets/js/respond.min.js"></script>
    <script src="/assets/js/jquery-1.9.0.min.js"></script>
    <![endif]-->
    <!--[if gte IE 9]>
    <script src="/assets/js/jquery-2.1.4.min.js" type="text/javascript"></script>
    <![endif]-->

ie时=》

<!--[if IE]>
    <script>window.isie = true;</script>
    <![endif]-->

 

非ie时=》

    <script>window._isie_ = false;</script>
    <!--[if IE]>
    <script>window._isie_ = true;</script>
    <![endif]-->
    <script>
        (function () {
            if (!window._isie_) {
                var script = document.createElement(script);
                script.type = text/javascript;
                script.onload = script.onreadystatechange = function () {
                    if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
                        // Handle memory leak in IE
                        script.onload = script.onreadystatechange = null;
                    }
                };
                script.src = /assets/js/jquery-3.2.0.min.js;
                window.document.getElementsByTagName(head)[0].appendChild(script);
            }
        })();
    </script>

 

js注释:

<script type="text/javascript">
/*@cc_on
 @if (@_jscript)
     // 该代码位于一条JS朱室内但在IE中执行它
     alert(‘In IE‘);
 @end     
 @*/
 
 /*@cc_on
 @if (@_jscript)
    // 该代码位于一条JS朱室内但在IE中执行它
     alert(‘In IE‘);
 @else*/
     alert(‘is not in IE‘);
 /*@end
 @*/
</script>

在非IE下 弹出消息框 is not in IE,在IE下则弹出了对话框 In IE。这里用到了能力检测  

@_jscript

是IE的javascipt解释器,总是为true(脚本中变量都能转换为0或1,true or false,表示存在这个变量,存在这种能力)

建议开发者在开发过程中尽量用能力检测代替浏览器检测。

 

以上是关于IE条件注释的主要内容,如果未能解决你的问题,请参考以下文章

IE条件注释

能用条件注释改善的IE兼容问题

使用条件注释定位 IE8 是不是有效?

ie模式 360兼容模式的兼容性调节以及控制代码

IE10 条件 IE 注释 <!--> 功能启用器

IE 修复 - 条件注释脚本不会执行