Question

Je teste une application Web assez complexe basée sur Javascript dans Internet Explorer 8 sous Windows Vista. Après le chargement de l'application, IE se trouve dans les "normes". Mode navigateur et "Normes IE 8" mode document. Lorsque l'application est en cours d'exécution, IE recharge parfois la page et affiche un message disant: "Un problème d'affichage lié à (URL) a amené Internet Explorer à recharger la page en mode de compatibilité". (pas le message exact, je suis sur une version non anglaise de Vista). Après le rechargement, le navigateur est en mode Quirks.

Déboguer le code Javascript est un exercice futile, car le problème ne peut pas être reproduit ni réduit de manière fiable, je vous saurais donc gré de nous expliquer ce qui pourrait causer ce problème.

Était-ce utile?

La solution

Il doit y avoir un problème avec le balisage que vous créez / créez via innerHTML . Voici un article de l'équipe IE comprenant détails de la récupération automatique d'Internet à partir de balises impossibles à analyser correctement dans IE8-standards-mode:

  

... il existe des chemins de code particuliers dans le nouveau moteur de mise en page où, en cas d'erreur, le processus de mise en page ne peut pas être récupéré avec élégance et nous avons conservé des assertions autour de ces chemins ... Nous avons affiné cette Expérimentez davantage dans la version publiée d’IE8 en récupérant la mise en page des assertions dures & # 8221; en utilisant l'affichage de compatibilité. En d'autres termes, nous pensons que montrer une page comme IE7 offrirait une meilleure expérience utilisateur que ne montrer aucun contenu.

Notez que l’utilisation de innerHTML appelle l’analyseur HTML, ce qui pourrait provoquer ce problème même après le chargement de la page si elle est alimentée avec une chaîne HTML ne pouvant ni tête ni queue.

Autres conseils

à vérifier ici ..

fondamentalement. par page, vous pouvez ajouter une balise META

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

ou, à l'échelle du site, ajoutez ceci à l'en-tête:

X-UA-Compatible: IE=EmulateIE7

Cela ressemble à Récupération automatique après un crash se produisant dans le rendu lui-même. C’est un bogue dans IE lui-même plutôt que dans vos scripts. Le débogage sera donc difficile.

Est-ce que cela se produit sur toutes les installations IE8? IE8 est-il mis à jour avec les derniers correctifs? (S'agit-il d'une extension tierce non fiable?)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top