2010-09-10 17 views

Odpowiedz

12

Można to zrobić z IE conditional comments, tak:

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

Należy zauważyć, że powyższe jest przetwarzany przez przeglądarki non-ie, ponieważ uwarunkowane jest nie komentarzu HTML , ale instrukcja przetwarzania,, więc bit w środku jest przetwarzany przez przeglądarki inne niż IE. IE widzi warunkowe i pomija treść, ponieważ rozumie warunkowe znaczenie "Nie ty, idź dalej".

Jeśli chcesz coś zrobić tylko dla IE, możesz skorzystać z formularza, który jest podobny, ale używa komentarzy HTML zamiast (z --), ponieważ jest to jedyny sposób można polegać na innych przeglądarkach ignorując zawartość. IE wie, aby zwracać na nie uwagę, mimo że są komentarzami. Więcej na powyższym linku.

Zauważ, że tam jest implikacja strona Prędkość bez obciążenia na IE (a nie innych przeglądarek) podczas korzystania z komentarzy warunkowych (oni tymczasowo zablokować pobieranie innych zasobów), więcej tutaj: http://www.phpied.com/conditional-comments-block-downloads/


Aktualizacja 2013 : IE10 + nie obsługuje już komentarzy warunkowych.

+4

Chciałbym tylko zauważyć, że nie jest to instrukcja przetwarzania. To po prostu zastrzeżona składnia Microsoftu. Instrukcja przetwarzania ma postać ''. –

+0

@ Eli: Rzeczywiście (http://en.wikipedia.org/wiki/Processing_Instruction). Wow, zawsze myślałem, że to instrukcje przetwarzania. Dzięki! –

1

Możesz zrobić to w zupełnie inny sposób [wstawiając TYLKO, jeśli IE], używając Warunkowych komentarzy, może to ci pomoże.

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

+1

Możesz także wstawić coś tylko wtedy, gdy jest * nie * IE, używając warunkowych komentarzy IE. Tak naprawdę. –

+0

Dobrze wiedzieć - dzięki! –

3

Można użyć IE conditional comment.

Aby uzyskać coś, co będzie wyświetlane w przeglądarkach innych niż IE, ale nie w IE, i która nadal będzie zweryfikować, można użyć:

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

Jak o obracając ją wokół? Jeśli jest taka możliwość, możesz użyć warunkowych komentarzy IE: http://www.quirksmode.org/css/condcom.html

W przeciwnym razie możesz powąchać programy użytkownika, ale jest to uważane za "złą praktykę".

+0

Nie musisz tego odwracać, komentarze warunkowe IE mogą być używane do kierowania na przeglądarki inne niż IE (tak, naprawdę). –

3

Po pierwsze, uwaga: To naprawdę nie jest dobra praktyka. Jeśli to możliwe, powinieneś starać się zaprojektować swoją stronę internetową w sposób niezależny od przeglądarki, tak aby działała ona konsekwentnie we wszystkich przeglądarkach, bez potrzeby utrzymywania hacków i sztuczek dla problemów specyficznych dla przeglądarki.

Ale jeśli naprawdę chcesz to zrobić, to najłatwiej to plik tylko wtedy, gdy przeglądarka jest IE: (. Zawiera plik tylko wtedy, gdy przeglądarka jest IE6 lub mniej)

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

Jednakże, jeśli naprawdę chcesz to zrobić na odwrót, oto niektóre z dostępnych opcji:

  1. użycie przeglądarka server-side wąchania przetwarzać przeglądarkę zanim strona zostanie narysowana.Oznacza to, że używaj języka po stronie serwera (Java, PHP, cokolwiek), aby określić, czym jest przeglądarka (zwykle za pośrednictwem łańcucha agenta użytkownika), a następnie warunkowo dołącz pliki JS w ten sposób. (Na przykład możesz użyć funkcji PHP get_browser.)
  2. Używanie wąchania przeglądarki po stronie klienta do wywoływania innego pliku JS, jeśli przeglądarka nie jest IE. Możesz określić przeglądarkę za pomocą samego JavaScript, a następnie wstawić inny plik JS na stronę, jeśli przeglądarka jest czymś innym niż IE. (Na przykład można użyć funkcji jQuery: browser).
  3. T.J.'s answer zapewnia także sposób wykonywania tego przy pomocy warunkowych komentarzy I.E.
1

Tak, skrypty warunkowe dla IE jest odpowiedź:

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

To zrobi quasi przeciwieństwo tego, o co prosił OP. –

+0

Dang, masz rację. Jak przegapiłem "nie" w pytaniu PO. Jest późno! – mkoistinen

2

To mniej znany niż komentarzy warunkowych, ale pomyślałem, że wspomnieć, że można również użyć funkcji IE nazwie kompilacja warunkowa - zobacz http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx

Ten przykład pochodzi z ich docs:

/*@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 @*/ 
Powiązane problemy