In che modo Javascript può far sì che IE 8 ricarichi una pagina nella visualizzazione di compatibilità?

StackOverflow https://stackoverflow.com/questions/1444944

Domanda

Sto testando un'applicazione web basata su Javascript abbastanza complessa in Internet Explorer 8 su Windows Vista. Dopo aver caricato l'applicazione, IE è in "standard" modalità browser e "standard IE 8" modalità documento. Mentre l'applicazione è in esecuzione, IE a volte ricarica la pagina e visualizza un messaggio che dice qualcosa del tipo "Un problema di visualizzazione con (URL) ha causato a Internet Explorer di ricaricare la pagina nella visualizzazione di compatibilità". (non il messaggio esatto, sono su una versione non inglese di Vista). Dopo il ricaricamento, il browser è in modalità Quirks.

Il debug del codice Javascript è stato un esercizio di futilità poiché il problema non può essere riprodotto in modo affidabile o ridotto, quindi apprezzerei qualsiasi intuizione su cosa potrebbe causare questo comportamento.

È stato utile?

Soluzione

Deve esserci un problema con il markup che stai offrendo / creando tramite innerHTML . Ecco un articolo del team di IE che include dettagli sul ripristino automatico di IE dal markup che è impossibile analizzare correttamente in modalità standard IE8:

  

... ci sono percorsi di codice particolari all'interno del nuovo motore di layout in cui, in caso si verifichi un errore, il processo di layout non può essere ripristinato con garbo e abbiamo mantenuto affermazioni attorno a questi percorsi ... Abbiamo perfezionato questo esperienza ulteriore nella versione rilasciata di IE8 recuperando il layout & # 8220; asserzioni dure & # 8221; utilizzando la Visualizzazione compatibilità. In altre parole, crediamo che mostrare una pagina come IE7 offrirebbe un'esperienza utente migliore rispetto a non mostrare alcun contenuto.

Nota che l'uso di innerHTML invoca il parser HTML, quindi potrebbe innescare questo problema anche dopo che la pagina è stata caricata se alimentata una stringa HTML di cui non può fare head o tail.

Altri suggerimenti

controlla qui ..

in fondo. per pagina, puoi aggiungere un meta tag

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

oppure, a livello di sito, aggiungilo all'intestazione:

X-UA-Compatible: IE=EmulateIE7

Sembra Ripristino automatico degli arresti anomali che si verifica nel renderer stesso. Questo è un bug in IE stesso piuttosto che nei tuoi script, quindi il debug sarà davvero difficile.

Questo succede su tutte le installazioni di IE8? IE8 è aggiornato con le ultime patch? (Potrebbe essere un'estensione inaffidabile di terze parti?)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top