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,表示存在這個變量,存在這種能力)

建議開發者在開發過程中盡量用能力檢測代替瀏覽器檢測。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM