/ / Problema di IE con le modalità di compatibilità - HTML, Internet Explorer, ovvero la modalità di compatibilità

Problema di IE con le modalità di compatibilità: html, internet-explorer, ie-compatibility-mode

Mi chiedevo quando ho inserito il mio browsermodalità di compatibilità, come fa a sapere quale impostazione utilizzare dai tag di intestazione trovati nel documento. Se abbiamo la logica per tutte le versioni su EI7, utilizzerà la parte più lontana? Quindi, in questo caso, sceglie 7 in modalità comp, ma se tornassimo a IE8, sceglierebbe IE8 per quell'istanza? Quindi la domanda è: perché la modalità di compatibilità di IE 11 lo imposta sugli standard IE7 secondo il mio debugger in IE? Se rimuovo lo snippet di codice [if IE7], lo imposterò sugli standard IE8 nel browser? Abbiamo appena smesso di supportare IE7, quindi sono il motivo per cui lo sto chiedendo.

[if IE 7 ]>    <html class="ie7"
[if IE 8 ]>    <html class="ie8"
[if IE 9 ]>    <html class="ie9"

risposte:

1 per risposta № 1

Inoltre, il modo in cui visualizzi le tue pagine influisce anche sulla modalità documento.

  • Se si visualizza una pagina su Internet (o tramite un browser Web locale), la pagina si apre nell'area Internet. In questo caso, il x-ua-compatible la direttiva ha la precedenza; a seconda dell'impostazione, il <DOCTYPE> potrebbe anche avere un impatto.
  • Se si apre la pagina utilizzando il menu File, daEsplora file o da un percorso di rete, la pagina si apre nell'area Intranet. Per impostazione predefinita, ciò significa che la tua pagina si apre in modalità di compatibilità IE7, sebbene ciò possa essere modificato attraverso le impostazioni.
  • Le app che ospitano il webBrowser controllano per impostazione predefinita IE7 a meno che tu non lo sovrascriva usando a modifica del registro. (Nota, al momento non è chiaro se questo sia supportato in Windows 10).

Per i migliori risultati:

  1. Usa HTML5 <DOCTYPE> direttiva.
  2. Usa un x-ua-compatible meta con contenuto impostato su IE=edge.
  3. Visualizza le pagine locali tramite un browser Web locale.
  4. Codice per HTML5, rilevamento delle funzionalità, protezione graduale e minore preoccupazione per le differenze individuali tra i singoli browser.

Spero che questo ti aiuti...

- Lance


1 per risposta № 2

Lo fa il codice che hai citato nella domanda NON indica a IE quale modalità utilizzare. Quello che fa questo codice è guardare la modalità in cui IE è già in uso e reagire di conseguenza.

Pertanto, la risposta alla tua domanda è: No: la rimozione del blocco specifico di IE7 da questo codice non impedirà a IE di entrare in modalità IE7.

Se vuoi forzare IE ad entrare in una modalità specifica, il codice che devi usare è il X-UA-Compatible meta tag.

È necessaria una riga nella parte superiore del codice HTML simile a questa:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

Mettendo edge nel contenuto indica a IE di utilizzare la migliore modalità disponibile (quindi IE11 sarà in modalità IE11). Se si desidera una modalità IE specifica, inserire IE8 o simile invece di edge.