2009-07-02 3 views

Antwort

41

Vom Wikipedia article on conditional comments (modifizierte Version Ihrer Anforderungen zu passen):

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

Die seltsame Markup in der ersten Zeile der Markup-Standards kompatibel machen dient.

+0

+1 Sehr nützlich! –

+0

Gibt es eine Möglichkeit, den bedingten Kommentar für Nicht-IE-Browser mit https://validator.w3.org/ zu validieren? Wenn Sie dies alles außer IE oder Variationen von bedingten Kommentar verwenden, dann ist es das wird den gefälschten Kommentarfehler auf die schließenden Tags werfen. Gibt es eine Möglichkeit, diesen Validierungsfehler zu vermeiden? – lowtechsun

+0

Tatsächlich gibt es. [www.456bereastreet.com/archive/200511/valid_downlevelrevealed_conditional_comments/](http://www.456bereastreet.com/archive/200511/valid_downlevelrevealed_conditional_comments /) – jkdev

6

Ihre Frage besser als „Bedingte Kommentare Inhalt von IE-Browser auszuschließen“ formulieren würde ;-)

Obwohl CCs sind meist zusätzliche Inhalte für IE zu schaffen verwendet, gibt es eine Variante, die Ihnen erlaubt, Verhindern, dass IE Inhalte sieht. Mit ihrer üblichen Arroganz wählte MS diesen "downlevel-revealed conditional comments" (weil alle anderen Browser in ihrer Welt schlechter sind als IE).

So etwas wie

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

sollte alles, was Sie brauchen werden.

Beachten Sie, dass die Beschreibung als "Conditional Comment" ein weiteres Beispiel für die seltsame Verwendung von Wörtern durch MS ist, die genau das bedeutet, was sie bedeuten und nicht das, was alle anderen meinen: Das obige funktioniert, weil es kein Kommentar ist , also nehmen alle anderen Browser als IE an, dass Sie in Ihrem HTML einen scheußlichen Fehler gemacht haben und analysieren den darin enthaltenen Inhalt weiter.

Dies bedeutet auch, dass es wahrscheinlich in XHTML mit dem Content-Typ application/xhtml + xml schlecht ausfallen wird, aber das ist eine andere Geschichte.

+0

Dies zielt auf etwas anderes als IE, aber was ist mit IE> 7? Außerdem ist das Markup kein gültiger HTML-Code und daher ist das Verhalten in einem anderen Browser als IE nicht spezifiziert. –

+3

Die Bedingung kann für IE 8 und höher sein. Was das ungültige Markup und nicht spezifizierte Konsequenzen betrifft: Was erwarten Sie sonst von Microsoft? ;-) – NickFitz

0

Es ist eine ziemlich gute Quelle für solche Dinge an: http://www.javascriptkit.com/javatutors/conditionalcompile.shtml

Diese in Verbindung mit der @_jscript_version Variable sollten Sie das gewünschte Ergebnis helfen zu erreichen. (Sie müssen Google "Versionsinformationen (Windows Scripting - JScript)" für die JScript -> IE Version suchen, da ich nur einen Link als neuen Benutzer einbetten darf.) :-(

Verwandte Themen