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,表示存在这个变量,存在这种能力)

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

 

posted @ 2017-12-09 20:41  过了这个村  阅读(1999)  评论(0编辑  收藏  举报

正是因为短暂的生命中有那么多困难和不如意,死亡又在一旁窥视着我们,所以我们没有时间忧伤和叹息,我们必须认真地对待生命,去思考,去寻找。