Perché Internet Explorer 11 non considera i commenti condizionali anche quando si emula la modalità documento di Internet Explorer 8?

Sto utilizzando i nuovi strumenti di sviluppo di Internet Explorer 11 per passare la modalità documento su “8”, ma i commenti condizionali sono ancora ignorati, ovvero non vengono analizzati correttamente e si comportano come normali commenti. Quindi qualsiasi file di riferimento all’interno del commento condizionale non viene richiesto / caricato dal browser.

Perché succede? E ‘un errore?

Se pensi che questo sia davvero un bug che deve essere risolto, per favore vai dentro e dì che anche tu puoi riprodurlo nella segnalazione di bug Microsoft riportata per questo problema:
I commenti condizionali non funzionano quando si emulano le modalità documento tramite gli Strumenti di sviluppo F12 .

Aggiornamento: è stato segnalato che questo problema è stato risolto nel rapporto bug menzionato.

Secondo Jacob Rossi [MSFT]

Questo dovrebbe essere risolto nell’aggiornamento 1 per IE11, rilasciato la scorsa settimana .

Questo è stato pubblicato il 22 aprile 2014.

Nel fare alcuni test io stesso sembra che questo è stato risolto e tutto sta funzionando di nuovo senza intoppi per testare il browser più incredibile mai prodotto … Internet Explorer!

Ho appena provato a utilizzare questo in Internet Explorer 11 su Windows 7 per assicurarmi che i miei elementi semantici HTML5 usati siano stati creati per Internet Explorer 8 e versioni successive (tramite commenti condizionali), e il browser li ignori semplicemente. -_-

Questa funzionalità ha funzionato perfettamente in Internet Explorer 10 e Microsoft ha dovuto semplicemente armeggiare con esso, no?

  

Oltre a questo, mi sto davvero godendo Internet Explorer, che rende per un cambiamento.

Questo ha funzionato per me e sembra la soluzione più elegante / facile ( Internet Explorer 10 e Internet Explorer 11 credo siano gli unici browser che supportano -ms-high-contract ):

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

Di recente mi sono imbattuto nello stesso problema. Ho anche scoperto che alcuni commenti condizionali funzionano:

  • gt e lt funzionato bene
  • gte e lte non lte mai funzionato

Quindi una ansible soluzione sarebbe quella di cambiare le dichiarazioni condizionali per utilizzare gli operatori gt e lt .

L’altra alternativa, che ho trovato più utile, era quella di utilizzare un servizio come browsstack .

Ho un’altra soluzione per questo.

Internet Explorer 11 con la modalità di compatibilità di Internet Explorer 8 triggersta contiene la stringa “MSIE 8.0”, quindi:

(Esempio PHP)

 if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) { $head[] = sprintf(''); } 

Ho avuto lo stesso problema – mi ha fatto impazzire tutta la mattina. Ho aggiunto Modernizr e ho selezionato tutte le opzioni, incluso yepnope.js.

Quindi ora il mio test assomiglia a questo:

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

In questo caso provo per canvas (che non è supportato prima di Internet Explorer 9), quindi carico il mio contenuto condizionale. Ora funziona quando si cambiano le modalità del browser negli strumenti di sviluppo di Internet Explorer 11.

Non l’ho visto menzionato qui, ma in questo bug report si nota che, se si modificano le impostazioni di visualizzazione della compatibilità, i commenti condizionali funzionano come previsto. Così:

  1. In IE11, fai clic su “Strumenti”
  2. Compatibilità Visualizza le impostazioni
  3. Digita l’URL e fai clic su Aggiungi

Sembra funzionare bene ora sul mio localhost. Non l’ho testato estensivamente, ma forse aiuterà qualcuno.

Alcuni dei commenti condizionali funzionano come ‘ gt ‘ e ‘ lt ‘, ma per esempio