頁面根據是否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,表示存在這個變量,存在這種能力)
建議開發者在開發過程中盡量用能力檢測代替瀏覽器檢測。