X-UA-Compatible è impostato su IE = edge, ma non interrompe la modalità di compatibilità

Sono abbastanza confuso. Dovrei essere in grado di impostare

 

e IE8 e IE9 dovrebbero rendere la pagina utilizzando il motore di rendering più recente. Tuttavia, l’ho appena testato e, se la modalità di compatibilità è triggersta altrove sul nostro sito, rimarrà triggers per la nostra pagina , anche se dovremmo costringerla a non farlo.

Come dovresti assicurarti che IE non usi la modalità di compatibilità (anche in una intranet)?

FWIW, sto usando la dichiarazione DocType HTML5 ( ).

Ecco le prime righe della pagina:

           <!--    

    EDIT: ho appena saputo che l’impostazione predefinita su IE8 è di utilizzare la modalità di compatibilità IE7 per i siti intranet. Sostituirebbe il meta tag X-UA-Compatible?

    Se è necessario sostituire le Impostazioni di visualizzazione compatibilità di IE per i siti intranet, è ansible farlo in web.config (IIS7) o tramite intestazioni HTTP personalizzate nelle proprietà del sito Web (IIS6) e impostare X-UA-Compatible in tale posizione. Il meta tag non sovrascrive le impostazioni della Intranet di IE in Compatibility View Settings, ma se lo imposti sul server di hosting, esso sovrascriverà la compatibilità.

    Esempio per web.config in IIS7:

            

    Modifica : ho rimosso il codice da poco prima add ; era una supervisione non necessaria da copiare e incollare. Buona cattura, commentatori!

    La soluzione Server Side è quella raccomandata, come proposta da @TimmyFranks nella sua risposta, ma se è necessario implementare la regola X-UA-Compatible a livello di pagina, leggere i seguenti suggerimenti, per beneficiare dell’esperienza di chi già bruciato


    Il meta tag X-UA-Compatible deve apparire subito dopo il titolo nell’elemento . Nessun altro meta tag, link css e chiamate js scripts possono essere posti prima di esso.

      Site Title        

    Se nella pagina sono presenti commenti condizionali (diciamo situati in ), devono essere collocati sotto, dopo .

     // DON'T: place class inside the HTML tag    // DO: place the class inside the BODY tag    

    Il team di Html5BoilerPlate ha scritto su questo bug – http://h5bp.com/i/378 Hanno diverse soluzioni.

    Per quanto riguarda la visualizzazione Intranet e compatibilità, ci sono impostazioni quando vai a Strumenti> Impostazioni visualizzazione Compatibilità.

    Impostazioni di visualizzazione della compatibilità

    Nota che se lo stai servendo da PHP, puoi anche usare il seguente codice per risolvere il problema.

     header("X-UA-Compatible: IE=Edge"); 

    A quanto pare, questo ha a che fare con la scelta “intelligente” di Microsoft di rendere tutti i siti intranet forzati alla modalità di compatibilità, anche se X-UA-Compatible è impostato su IE=edge .

    Ho anche avuto lo stesso problema del rendering di IE9 in IE7 Standard di documenti per l’host locale. Ho provato molti tag di commenti condizionali ma senza successo. Alla fine ho rimosso tutti i tag condizionali e ho aggiunto subito il meta tag subito dopo la testa come in basso e ha funzionato come un fascino.

       

    Spero che sia d’aiuto

    Anche se hai deselezionato l’opzione “Visualizza siti Intranet in Visualizzazione Compatibilità” e disponi di X-UA-Compatibile nelle intestazioni di risposta, c’è un altro motivo per cui il tuo browser potrebbe essere predefinito in “Visualizzazione Compatibilità” comunque: i tuoi Criteri di gruppo. Guarda la tua console per il seguente messaggio:

    HTML1203: xxx.xxx è stato configurato per l’esecuzione in Visualizzazione Compatibilità tramite Criteri di gruppo.

    Dove xxx.xxx è il dominio per il tuo sito (es. Test.com). Se viene visualizzato questo, le norme di gruppo per il dominio vengono impostate in modo che qualsiasi sito che termina in test.com esegua automaticamente il rendering in modalità di compatibilità indipendentemente dal doctype, dalle intestazioni e così via.

    Per ulteriori informazioni, vedere il seguente collegamento (spiega i codici html): http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx

    Come sottolineato da NEOSWF sopra, i commenti condizionali di Paul irlandesi impediscono al meta tag di avere alcun effetto.

    Ci sono diverse correzioni tutte qui ( http://nicolasgallagher.com/better-conditional-classnames-for-hack-free-css/ )

    Questi includono:

    Aggiunta di due classi HTML, utilizzando le intestazioni del server e aggiungendo un commento condizionale sopra il doctype.

    Nel mio ultimo progetto ho deciso di rimuovere i commenti condizionali di Paul Irish. Non mi è piaciuta l’idea di aggiungere qualcosa prima dell’HTML senza aver prima fatto un sacco di test ed è bello vedere cosa è stato impostato guardando l’HTML.

    Alla fine ho circondato un div direttamente dal corpo e ho usato commenti condizionali ad es

       ... regular body stuff  

    Avrei potuto farlo in tutto il corpo ma è più difficile con CMS come WordPress.

    Ovviamente è un altro DIV all’interno del markup, ma è solo per i browser più vecchi.

    Penso che potrebbe essere una decisione basata su progetto, però.

    Ho anche letto qualcosa sul meta tag charset che deve essere inserito nei primi 1024 byte, quindi questo lo garantisce.

    A volte le idee più semplici e facili da leggere sono le migliori e vale sicuramente la pena di pensarci! Grazie al sesto commento sul link qui sopra per averlo indicato.

    X-UA-Compatible sostituirà solo la modalità documento, non la modalità browser, e non funzionerà per tutti i siti intranet; se questo è il tuo caso, la soluzione migliore è disabilitare “Visualizza siti intranet in Visualizzazione Compatibilità” e impostare un’impostazione di criteri di gruppo per specificare quali siti intranet richiedono la modalità di compatibilità.

    Ho aggiunto quanto segue al mio file htaccess, che ha fatto il trucco:

     BrowserMatch MSIE ie Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie 

    Inoltre, X-UA-Compatible deve essere il primo meta tag nella sezione head

        

    A proposito, l’ordine corretto oi tag principali sono:

        Site Title   

    Per di qua

    1. impostiamo il motore di rendering da utilizzare prima che IExplorer inizi a elaborare
    2. il documento quindi impostiamo la codifica da utilizzare per tutti i browser
    3. quindi stampiamo il titolo, che verrà elaborato con la codifica già definita.

    Per Nginx,

     add_header "X-UA-Compatible" "IE=Edge,chrome=1"; 

    ref: https://github.com/h5bp/server-configs/commit/a5b0a8f736d68f7de27cdcb202e32975a74bd2c5

    Timmy Franks aveva ragione per me. Abbiamo appena avuto il problema oggi dove il cliente aveva IE8 in tutta la società, e stava costringendo il sito che abbiamo scritto per la loro intranet in modalità di compatibilità. L’impostazione di “IE-Edge” sembrava risolverlo.

           

    IE 11 non ti permette di sovrascrivere l’impostazione di visualizzazione della compatibilità del browser inviando l’intestazione …

      

    Sembra che l’unico modo per forzare il browser a non utilizzare la visualizzazione della compatibilità è di averlo disabilitato dall’utente nel proprio browser. Il nostro è un sito Intranet e l’opzione IE predefinita è utilizzare la visualizzazione di compatibilità per i siti Intranet. Che dolore!

    Siamo stati in grado di impedire all’utente di modificare le impostazioni del browser per gli utenti di IE 9 e 10, ma non funziona più in IE 11. I nostri utenti di IE stanno passando a Chrome, dove questo non è un problema e non ha mai stato.

    Sono stato in grado di aggirare questo caricamento delle intestazioni prima dell’HTML con PHP, e ha funzionato molto bene.

      

    ix.html è il contenuto che volevo caricare dopo l’invio delle intestazioni.

    Ho avuto lo stesso problema dopo aver provato molte combinazioni ho avuto questa nota di lavoro che ho controllato la compatibilità per la rete intranet

         

    Se stai utilizzando lo stack LAMP, quindi aggiungi questo nel tuo file .htaccess nella cartella principale web. Non c’è bisogno di aggiungerlo a tutti i file PHP.

      Header add X-UA-Compatible "IE=Edge"  

    Stavo vivendo lo stesso problema in IE11. Nessuna di queste risposte ha risolto il mio problema. Dopo aver scavato un po ‘, ho notato che il browser era in esecuzione in modalità Enterprise . (verifica premendo F12 e fai clic sulla scheda emulazione, cerca il profilo a discesa del profilo del browser) L’impostazione è stata bloccata, non permettendomi di modificare l’impostazione.

    Sono stato in grado di cambiare il profilo in Desktop dopo aver eliminato CurrentVersion dalla seguente chiave di registro:

     HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\EnterpriseMode 

    Dopo aver cambiato la modalità su desktop, le risposte su questo post funzioneranno.

    Quando il browser si apre con le Modalità di compatibilità, anche se rimuovi e spegni tutte le configurazioni delle modalità di compatibilità dal tuo browser web e dall’Editor dei criteri di gruppo locale, puoi provare a disabilitare dalla chiave di registro.

    Questo mi capita anche di usare dominio e sottodominio per connettere il lato server. La macchina è limitata ad aprire in modalità compability per tutto il sottodominio.

    DISATTIVA LA MODALITÀ DI COMPILAZIONE PER INTRANET

    HKEY_LOCAL_MACHINE – SOFTWARE – Politiche – Microsoft – Internet Explorer – BrowserEmulation -> IntranetCompalityMode Il valore deve essere 0 (zero) . E rimuove anche il nome di dominio esistente da PolicyList.

    In caso contrario, è ansible aggiungere un nuovo valore (DWORD) contenente dati di valore 0 (zero) .