wake-up-neo.com

Warum werden in Internet Explorer 11 keine bedingten Kommentare berücksichtigt, selbst wenn Sie den Internet Explorer 8-Dokumentmodus emulieren

Ich verwende die neuen Internet Explorer 11 Entwicklerwerkzeuge, um den Dokumentmodus auf "8" zu ändern. Bedingte Kommentare werden jedoch weiterhin ignoriert, dh sie werden nicht ordnungsgemäß analysiert und verhalten sich wie normale Kommentare. Daher wird eine referenzierte Datei innerhalb des bedingten Kommentars nicht vom Browser angefordert/geladen.

Warum passiert das? Ist es ein Fehler?

Wenn Sie der Meinung sind, dass dies in der Tat ein Fehler ist, der behoben werden muss, gehen Sie bitte ein und sagen Sie, dass Sie dies auch im Microsoft-Fehlerbericht reproduzieren können, der für dieses Problem gemeldet wurde:
Bedingte Kommentare funktionieren nicht beim Emulieren von Dokumentmodi über F12 Developer Tools.

Update: Dieses Problem wurde im besagten Fehlerbericht behoben.

111
Thasmo

Entsprechend zu Jacob Rossi [MSFT] 

Dies sollte in Update 1 für IE11 behoben werden. Letzte Woche veröffentlicht .

Das wurde am 22. April 2014 veröffentlicht. 

Wenn ich einige Tests selbst durchführe, scheint es, dass dies behoben wurde und alles wieder reibungslos läuft, um den erstaunlichsten Browser zu testen, der je produziert wurde ... Internet Explorer!

28
L84

Ich habe gerade versucht, dies in Internet Explorer 11 unter Windows 7 zu verwenden, um sicherzustellen, dass meine verwendeten HTML5 semantischen Elemente für Internet Explorer 8 und darunter (über bedingte Kommentare) und den Browser erstellt wurden ignoriert sie einfach. -_-

Diese Funktion hat in Internet Explorer 10 einwandfrei funktioniert, und Microsoft musste nur daran basteln, nicht wahr?

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

Abgesehen davon genieße ich eigentlich den Internet Explorer, was eine Änderung bewirkt.

20
DylRicho

Dies hat für mich funktioniert und scheint die eleganteste/einfachste Lösung zu sein ( Internet Explorer 10 und Internet Explorer 11 Ich denke, die einzigen Browser unterstützen -ms-high-contract):

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */
}
17
cmartin

Ich habe eine andere Lösung dafür.

Internet Explorer 11 bei aktiviertem Internet Explorer 8-Kompatibilitätsmodus enthält die Zeichenfolge 'MSIE 8.0'.

(PHP-Beispiel)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}
7

Ich bin kürzlich auf das gleiche Problem gestoßen. Ich fand auch, dass einige bedingte Kommentare funktionieren:

  • gt und lt haben gut funktioniert
  • gte und lte haben nie funktioniert

Eine mögliche Lösung wäre also, die Bedingungsanweisungen so zu ändern, dass die Operatoren gt und lt verwendet werden.

Die andere Alternative, die ich nützlicher fand, war die Verwendung eines Dienstes wie browserstack .

7
user1429980

Ich hatte das gleiche Problem - es hat mich den ganzen Morgen verrückt gemacht. Ich habe Modernizr hinzugefügt und alle Optionen ausgewählt, einschließlich yepnope.js.

So sieht mein Test jetzt so aus:

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

In diesem Fall teste ich auf Leinwand (die vor Internet Explorer 9 nicht unterstützt wird) und lade daher meine bedingten Inhalte. Dies funktioniert jetzt, wenn Sie den Browsermodus in den Internet Explorer 11-Entwicklerwerkzeugen wechseln.

3
El Kabong

Ich habe es hier nicht erwähnt, aber in diesem Fehlerbericht wird bemerkt, dass die bedingten Kommentare wie erwartet funktionieren, wenn Sie die Einstellungen für die Kompatibilitätsansicht ändern. So:

  1. Klicken Sie im IE11 auf "Tools".
  2. Einstellungen der Kompatibilitätsansicht
  3. Geben Sie die URL ein und klicken Sie auf Hinzufügen

Scheint jetzt gut auf meinem localhost zu funktionieren. Ich habe das nicht ausgiebig getestet, aber vielleicht hilft es jemandem.

2
Just Plain High

Einige der bedingten Kommentare funktionieren wie 'gt' und 'lt', aber beispielsweise <!--[if IE 8]> funktioniert nicht. Dies ist sicherlich unbequem für Entwickler, die versuchen möchten, wie ihre Webseiten in verschiedenen Versionen von Internet Explorer-Browsern aussehen, aber es sind nicht nur schlechte Nachrichten.

Obwohl die bedingten Kommentare nicht funktionieren, können Sie immer noch testen, wie Ihre Webseite in den einzelnen Internet Explorer-Versionen aussieht, indem Sie die Stylesheets einzeln anhängen. Angenommen, Sie haben ein Stylesheet für Firefox, Chrome, Internet Explorer 10 und Internet Explorer 11 heißt "screen.css" und ein weiteres Stylesheet NUR für Internet Explorer 9 mit dem Namen "screen-ie9.css" und ein weiteres NUR für Internet Explorer 8 mit dem Namen "screen-ie8.css".

Um Ihre Webseiten NUR für Internet Explorer 9 zu testen, können Sie Folgendes tun:

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

setzen Sie in den F12-Entwicklertools im Abschnitt Emulation den 'Document Mode' auf '9' und die 'User Agent-Zeichenfolge' auf 'Internet Explorer 9'. Der Dokumentmodus ist der Standard, den Internet Explorer 9 verwendet, und die Benutzeragentenzeichenfolge ist der Browser selbst.

P.S: Ich gehe davon aus, dass das 'screen.css' Ihr Basis-Stylesheet ist. Deshalb nenne ich es zuerst als das "Überschreiben" der Internet Explorer 9-Updates, indem Sie später 'screen-ie9.css' aufrufen.

Auf diese Weise können Sie "sicher" sein (ich muss mit VMs testen, um das Wort "sure" ohne Anführungszeichen zu schreiben), dass Sie Ihre Webseite in einem Internet Explorer 9-Browser anzeigen. Wenn Sie mit dem Testen und Gestalten von Internet Explorer 9 fertig sind und mit Internet Explorer 8 testen möchten, können Sie den gleichen Trick ausführen, indem Sie Folgendes tun:

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

mit diesem:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

Es ist also nur eine Angelegenheit von MINORs Unannehmlichkeiten von Microsoft. ABER die neuen F12-Entwickler-Tools bieten LOTS erstaunliche Funktionen, was die Sache nicht besonders belastet.

0
Roben B