2010-09-10 54 views

回答

12

你可以用IE的conditional comments做到這一點,就像這樣:

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

注意的是,以上是由非IE瀏覽器處理,因爲條件是 HTML註釋,但處理指令,所以在中間的位由非IE瀏覽器處理。 IE看到條件和跳過內容,因爲它明白有條件的手段「不是你,一起移動。」

如果你只想對IE做一些,您使用的形式很相似,但使用HTML註釋,而不是(與--),因爲這是你可以依靠其他瀏覽器忽略了內容的唯一途徑。 IE知道要注意他們,即使他們是評論。更多關於上面的鏈接。

注意,有關於IE瀏覽器(而不是其他瀏覽器),當您使用條件的意見(他們暫時阻止其他資源的下載)頁面加載速度寓意,更在這裏:http://www.phpied.com/conditional-comments-block-downloads/


更新2013 :IE10 +不再支持條件註釋。

+4

我只想指出,這不是一個處理指令。這只是專有的Microsoft語法。處理指令的形式是'<?processing-instruction-name-here ... data here ...?>'。 – 2010-09-10 23:27:43

+0

@Eli:果然(http://en.wikipedia.org/wiki/Processing_Instruction)。哇,我一直以爲他們正在處理指令。謝謝! – 2010-09-11 13:41:31

1

你可以做到這一點完全不同的方式使用條件註釋[ONLY,如果IE的東西插入],也許這將幫助你。

http://en.wikipedia.org/wiki/Conditional_comment

+1

你也可以使用IE的條件註釋,只在* not * IE時插入東西。對真的。 – 2010-09-10 22:23:45

+0

很高興知道 - 謝謝! – 2010-09-10 22:24:53

3

您可以使用IE conditional comment

要得到的東西,會比IE等瀏覽器中顯示,但不是在IE瀏覽器,並且仍然會驗證,你可以使用:

<!--[if !IE]>--> 
    <script src="..."></script> 
<!--<![endif]--> 
0

如何扭轉呢?如果這是一個可能性,你可以使用IE的條件註釋:http://www.quirksmode.org/css/condcom.html

否則你可以嗅出用戶代理,但這個被認爲是「不好的做法」。

+0

你不必轉過身來,IE的條件註釋可以用於定位非IE瀏覽器(是的,真的)。 – 2010-09-10 22:24:11

3

首先,注意:這不是一個很好的做法。如果可能的話,您應該努力以瀏覽器不可知的方式設計您的網站,以便它可以在所有瀏覽器中始終如一地工作,而無需維護針對特定瀏覽器問題的黑客和技巧。

但如果你真的想這樣做,這是最簡單的包含文件只有在瀏覽器 IE:(包括僅當瀏覽器是IE6或更小的文件)

<!--[if lt IE 7]> 
<script type="text/javascript" src="global.js"></script> 
<![endif]--> 

但是,如果你真的想圍繞做它的其他方式,這裏有一些選擇:

  1. 使用服務器端的瀏覽器嗅探來處理瀏覽器在繪製頁面之前。也就是說,使用服務器端語言(Java,PHP等)來確定瀏覽器是什麼(通常通過用戶代理字符串),然後以這種方式有條件地包含您的JS文件。 (例如,您可以使用PHP的get_browser函數。)
  2. 如果瀏覽器不是IE,則使用客戶端瀏覽器嗅探來調用另一個JS文件。您可以使用JavaScript本身來確定瀏覽器,如果瀏覽器不是IE,則可以在頁面中插入另一個JS文件。 (例如,您可以使用jQuery的browser函數。)
  3. T.J.'s answer提供了一種使用I.E.的條件註釋來執行此操作的方法。
1

是的,對於IE條件腳本就是你的答案:

<!--[if lt IE 7 ]> 
    <script src="/js/my_ie_script.js"></script> 
<![endif]--> 
+0

這將做OP的要求的準相反。 – 2010-09-10 22:32:37

+0

當然,你是對的。我怎麼會錯過OP的問題中的'不'。晚了! – mkoistinen 2010-09-10 23:06:48

2

它鮮爲人知比有條件的意見,但我想我會提到,你也可以使用一個叫做條件編譯一個IE瀏覽器的功能 - 見http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx

這個例子來自於他們的文檔:

/*@cc_on @*/ 
/*@if (@_jscript_version >= 5) 
document.write("JScript Version 5.0 or better.<BR>"); 
@else @*/ 
document.write("You need a more recent script engine.<BR>"); 
/*@end @*/ 
相關問題