IE10 esegue il rendering in modalità IE7. Come forzare la modalità Standard?

Sul sito di Microsoft affermano che una semplice dichiarazione di doctype è sufficiente. Ma anche un documento così breve come questo torna alla modalità IE7:

        

http://d.pr/i/fvzb+

Internet Explorer presuppone che la maggior parte delle pagine Web siano state scritte per puntare a versioni precedenti di IE e esamina doctype, meta tag e HTML per determinare la migliore modalità di compatibilità (a volte erroneamente). Anche con un doctype HTML5, IE posizionerà comunque il tuo sito Web in modalità di compatibilità se si tratta di un sito intranet.

Per garantire che il tuo sito Web utilizzi sempre la modalità standard più recente, puoi assicurarti che i Display intranet sites in Compatibly siano distriggersti. Tuttavia, è necessario eseguire questa operazione su ciascuna macchina locale al server Web (le istruzioni sono riportate di seguito).

In alternativa e meglio ancora, puoi utilizzare l’intestazione X-UA-Compatible per distriggersrla dal server. È importante notare che l’ utilizzo del meta tag non funzionerà! .

   

In tutto MSDN è menzionato che l’utilizzo di un’intestazione host o di un metatag dovrebbe ignorare anche i intranet sites . L’articolo Informazioni sulle modalità di compatibilità in Internet Explorer 8 afferma quanto segue.

Un numero elevato di siti Web aziendali interni sono ottimizzati per Internet Explorer 7, pertanto questa eccezione predefinita mantiene tale compatibilità. … Anche in questo caso se si utilizza un tag Meta o un’intestazione http per impostare una modalità di compatibilità sul documento, tali impostazioni verranno sovrascritte.

Tuttavia, in pratica ciò non funzionerà, l’utilizzo di un’intestazione host è l’unica opzione che funziona. La sezione commenti dell’articolo mostra anche numerosi esempi di questo problema esatto.

L’uso di un tag Meta ha anche altri problemi, come ignorare il tag se non è direttamente sotto il tag o se ci sono troppi dati prima di esso (4k). Potrebbe anche far sì che il documento venga riprodotto in alcune versioni di Internet Explorer che rallenteranno il rendering. Puoi leggere ulteriori informazioni su questi problemi nell’articolo MSDN Best Practice: Ottieni il tuo HEAD in ordine .

Aggiunta dell’intestazione compatibile X-UA

Se stai usando .net e IIS puoi aggiungerlo a web.config, potresti anche farlo a livello di codice:

        

Se non stai usando IIS è facile da fare in qualsiasi lingua, per esempio ecco come farlo in PHP:

 header('X-UA-Compatible: IE=edge'); 

Finché l’intestazione X-UA-Compatible è presente con il doctype html5, un sito verrà sempre eseguito nella modalità standard più recente.

Distriggerszione della Visualizzazione Compatibilità
Potrebbe comunque essere utile distriggersre la Visualizzazione Compatibilità. Per fare ciò, deselezionare Display all intranet sites in compatibility view in Impostazioni vista compatibilità.

Compatibilità Visualizza Impostazioni

Puoi farlo alzando colpendo alt per ottenere il menu

inserisci la descrizione dell'immagine qui

Modifica Questa risposta riguarda anche IE9

Questo funziona per me ..

  

Prova ad aggiungere il seguente tag alla testa

  

Il meta tag non fa nulla per i siti intranet e il mio problema è stato il rendering di IE10 nella modalità di compatibilità IE10. Ciò che ha affrontato il problema per me è stato quello di prendere ulteriormente la risposta di @ Jeow e usare quel valore in un’intestazione http aggiungendo quanto segue a web.config sotto IIS:

          

Ai fini di IE, i siti intranet includono siti pubblici non indirizzati all’esterno: ad esempio, un dipendente Stackoverflow che lavora dall’ufficio probabilmente vedrebbe stackoverflow.com in modalità di compatibilità.

Ha funzionato perfettamente per me quando ho fatto il folowing:

Su http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx

Utilizzato l’esatto esempio fornito nella prima casella (aggiunto il mancante nella parte inferiore), l’ho aperto in IE10 e gli standard sono stati forzati, penso che potresti aver bisogno di contenuti effettivi nel codice HTML per forzare gli standard non sono sicuri .

Il mio suggerimento sarebbe quello di sostituire il tuo codice vuoto con contenuti reali (qualcosa di semplice) e vedere cosa fa.