2009-07-02 17 views

Odpowiedz

41

Z Wikipedia article on conditional comments (modyfikowany, aby dopasować swoje wymagania wersji):

<!--[if gt IE 7]><!--> 
<p>This code displays on non-IE browsers and on IE 8 or higher.</p> 
<!--<![endif]--> 

Upiorna znaczników w pierwszym wierszu służy do zgodnego standardy znaczników.

+0

+1 Bardzo przydatny! –

+0

Czy istnieje sposób, aby uwarunkowany komentarz do przeglądarek innych niż IE sprawdzał za pomocą https://validator.w3.org/? Jeśli używa się tego wszystkiego z wyjątkiem IE lub wariacji komentarza warunkowego, to rzuci fałszywy błąd komentarza na znacznikach zamykających Czy istnieje sposób na uniknięcie tego błędu sprawdzania poprawności? – lowtechsun

+0

Rzeczywiście jest. [www.456bereastreet.com/archive/200511/valid_downlevelrevealed_conditional_comments/](http://www.456bereastreet.com/archive/200511/valid_downlevelrevealed_conditional_comments /) – jkdev

6

Twoje pytanie będzie lepiej sformułowane jako „Korzystanie z komentarzy warunkowych wykluczyć treści z przeglądarek IE” ;-)

Chociaż CCS najczęściej wykorzystywane w celu zapewnienia dodatkowej zawartości dla IE, istnieje wariant, który pozwala na Zapobiegaj wyświetlaniu treści przez program IE. Z ich zwykłą arogancją, MS zdecydowało się nazwać to "downlevel-revealed conditional comments" (ponieważ wszystkie inne przeglądarki są gorsze niż IE w ich świecie).

Coś

<![if !IE]><p>You are not using Internet Explorer.</p><![endif]> 

powinno być wszystko, czego potrzebujesz.

Zauważ, że opisanie tego jako "uwaga warunkowa" jest kolejnym przykładem dziwnego użycia słów przez MS, które oznacza dokładnie to, co wybierają, aby oznaczać, a nie co wszyscy inni oznaczają: powyższe działa, ponieważ w rzeczywistości nie jest komentarzem , więc wszystkie przeglądarki inne niż IE po prostu zakładają, że popełniłeś ohydny błąd w kodzie HTML i kontynuujesz przetwarzanie zawartych w nim treści.

Oznacza to również, że prawdopodobnie nie powiedzie się źle w XHTML obsługiwanym przez typ aplikacji/xhtml + xml, ale to już inna historia.

+0

To działa na cokolwiek innego niż IE, ale co z IE> 7? Ponadto znacznik nie jest prawidłowym kodem HTML, a zatem zachowanie w dowolnej przeglądarce innej niż IE jest nieokreślone. –

+3

Warunek może być dla IE 8 i więcej. Co do nieważnych znaczników i nieokreślonych konsekwencji: czego jeszcze można oczekiwać od firmy Microsoft? ;-) – NickFitz

0

Jest to dość dobre źródło informacji dla takich rzeczy pod adresem: http://www.javascriptkit.com/javatutors/conditionalcompile.shtml

to w połączeniu ze zmienną @_jscript_version powinien pomóc Ci osiągnąć pożądany rezultat. (Będziesz musiał uzyskać Google "Informacje o wersji (Windows Scripting - JScript)" dla wyszukiwania wersji JScript -> IE, ponieważ mogę osadzać tylko jeden link jako nowy użytkownik.) :-(