Modalità browser IE8 in modalità documento

Qualcuno può spiegare la differenza tra la modalità browser IE8 e la modalità documento in termini semplici?

Lo sto chiedendo perché stiamo facendo alcuni test IE8 qui, e persone diverse hanno combinazioni diverse delle modalità, e voglio provare a capire come sta succedendo.

Da questo articolo sul blog IE8, intitolato Come IE8 determina la modalità documento

  1. Le impostazioni degli Strumenti per sviluppatori sostituiscono tutte le Modalità documento per le pagine visualizzate in una scheda.
  2. Il metatag X-UA-Compatible e quindi l’intestazione sostituiscono Compatibility View Settings e doctype a meno che il valore X-UA-Compatible sia EmulateIE7 o EmulateIE8.
  3. Le Impostazioni visualizzazione Compatibilità dell’utente sostituiscono l’Elenco visualizzazione compatibilità Microsoft.
  4. Se non si applica nessuna delle regole precedenti, il doctype determina se il rendering delle pagine Web viene eseguito negli standard IE8, IE8 Almost Standards o Quirks Mode.

Quindi da ciò otteniamo le seguenti risposte alle tue domande:

D. Qual è la differenza tra la modalità browser e la modalità documento in termini semplici?
A. La modalità Browser è impostata negli strumenti di sviluppo per emulare i diversi comportamenti della versione del browser IE mentre la modalità documento è definita sulla pagina Web per indicare a IE di rendere il sito in modo diverso a fini di compatibilità.

D. Qual è la causa della modifica della modalità browser?
A. L’utente cambia la modalità browser negli strumenti dev.

D. Qual è la causa della modifica della modalità documento?
A. Il doctype e il meta tag compatibile X-UA e l’intestazione impostata dallo sviluppatore web.

D. Se un utente modifica la modalità (i) tramite strumenti di sviluppo, la modifica rimane anche se la pagina viene aggiornata?
A. La Modalità Browser rimarrà, ma se cambi Doctype e X-UA-Compatible, torneranno a ciò che è definito sulla pagina.

AGGIORNAMENTO: come indicato da Adrien Be in basso, IE9 + aggiunge la possibilità di cambiare la modalità documento negli strumenti dev tramite un’impostazione che permane durante l’aggiornamento.

Vedi la tua risposta in questa pagina .

La proprietà documentMode restituisce la modalità utilizzata dal browser per il rendering del documento corrente.

IE8 può eseguire il rendering di una pagina in diverse modalità, a seconda del !DOCTYPE o della presenza di determinati elementi HTML.

Questa proprietà restituisce uno dei seguenti valori:

 5 - The page is displayed in IE5 mode 7 - The page is displayed in IE7 mode 8 - The page is displayed in IE8 mode 9 - The page is displayed in IE9 mode 

Nota: se non è specificato !DOCTYPE , IE8 esegue il rendering della pagina in modalità IE5!

Diagramma del processo di selezione della modalità documento

Modalità browser : specifica l’ agente utente inviato dal browser al server Web. Le differenze di rendering possono verificarsi se il codice JavaScript o il codice back-end vengono visualizzati in modo diverso in base alla stringa dell’agente utente. Ad esempio, potresti visualizzare JavaScript che controlla navigator.userAgent . (Mozilla / 5.0 (compatibile; MSIE 8.0 …) Questo valore viene anche utilizzato per elaborare i commenti condizionali ([if lte IE 9], [if gt IE 8], ecc.). Gli strumenti di emulazione in IE 11 non ha una modalità browser, ma ha un menu a discesa agente utente.

Modalità documento : specifica il motore di rendering utilizzato per elaborare il markup. Questo è solitamente il punto in cui vediamo problemi di rendering e incompatibilità con il browser. L’objective originale (nel bene o nel male) era che i proprietari dei siti web potevano scegliere una modalità documento per il loro sito tramite un meta tag. In IE 11, gli strumenti di emulazione sono meno confusi.

Test : se il tuo objective è quello di emulare un vecchio browser IE8, devi modificare sia la modalità browser che la modalità documento. L’emulazione non è perfetta, quindi un’opzione più approfondita è scaricare le VM di test gratuite da Microsoft, dove è ansible testare con una versione * reale di IE 8, 9, ecc.

Che cosa causa la modifica di questi valori?

La modalità Browser non cambierà. (A meno che non lo si cambi in strumenti Dev.) Viene impostato prima di effettuare la richiesta al server web.

La modalità documento può cambiare in base alla risposta del server Web. Può essere modificato tramite un’intestazione di risposta HTTP compatibile con X-UA, tipo doc, meta tag, siti Intranet, problemi di markup, ecc.

C’è un piccolo pulsante in alto a sinistra, in IE dev tools -> emulation (tab) che dice “Persist emulation settings”

vedi questo :

Persistenza delle impostazioni e ripristino Un’icona delle impostazioni di emulazione persistente viene aggiunta allo strumento Emulazione, in modo da mantenere le impostazioni di emulazione correnti fino a disabilitarle specificatamente, consentendo di lavorare, chiudere il browser e tornare indietro con le impostazioni di emulazione intatte. un’icona di impostazioni Reset Emulation, che riporta rapidamente lo strumento ai valori predefiniti.