2012-10-01 82 views
0

這可能聽起來很奇怪,但是當用戶在IE 8上時不是添加額外的文件我想刪除通常在所有其他瀏覽器中加載的JS文件。IE的條件標籤 - 如果瀏覽器是IE瀏覽器,是否可以不加載JS文件?

再次。

我在head有這個在我的:

<script type="text/javascript" async src="my-script.js"></script> 

而且我想該腳本在所有瀏覽器在IE瀏覽器,除了(因爲它不工作,所以我不希望加載它) 。

我知道這樣

<!--[if lt IE 9]> 
<![endif]--> 

通常條件標籤,但我想有沒有辦法周圍使用它們的其他方式,使我想到的唯一解決方案是這樣的......

<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == FALSE) { ?> 
     <script type="text/javascript" async src="my-script.js"></script> 
<?php } ?> 

這是做這件事的最佳解決方案嗎?此外,我實際上需要測試所有IE版本9以下。所以我不希望JS文件加載在IE8,IE7和IE6。

預先感謝您。

回答

10

所有未IE

<!--[if !IE]> --> 
<script type="text/javascript" async src="my-script.js"></script> 
<!-- <![endif]--> 

只有IE 9和更高

<!--[if gt IE 8]> 
<script type="text/javascript" async src="my-script.js"></script> 
<![endif]--> 

<!--[if gte IE 9]> 
<script type="text/javascript" async src="my-script.js"></script> 
<![endif]--> 

IE 9和更高+其他瀏覽器

理論上,您可以使用OR運算符,但NOT IE註釋樣式不支持此運算符。

<!--[if !(IE)|(gte IE 9)]> 
Test 
<![endif]--> 

您還可以使用嵌套的註釋是這樣的:

<!--[if !IE]><![if gte IE 9]>--> 
Test 
<!--<![endif]><![endif]--> 

More information

+1

第一個是沒有條件註釋,再次檢查語法;) – Bart

+0

- 是的,就是這樣。它看起來並不像它,因爲它揭示了不實現condcom的瀏覽器的代碼。 – Quentin

+0

對於其他瀏覽器,它只是一個常規評論,他們不知道「條件評論」。這和寫作一樣。 <! - 我喜歡吃魚 - >

相關問題