web-dev-qa-db-fra.com

Forcer Internet Explorer 9 à utiliser le mode de document standard

Comment puis-je forcer Internet Explorer 9 à utiliser le mode document standard? J'ai construit un site Web et je constate qu'IE9 utilise le mode quirks pour rendre les pages du site Web. Mais je veux utiliser le mode standard pour le rendu.

70
MaxRecursion
 <!doctype html>
 <meta http-equiv="X-UA-Compatible" content="IE=Edge">

Cela fait que chaque version de IE utilise son mode standard, ainsi IE 9 utilisera le mode IE 9. (Si vous préférez utiliser les nouvelles versions de IE pour utiliser également le mode standard IE 9, vous devrez remplacer Edge par 9. Mais il est difficile de voir pourquoi vous le souhaitez.)

Pour obtenir des explications, voir http://hsivonen.iki.fi/doctype/#ie8 (cela semble plutôt compliqué, mais c’est parce que IE est désordonné dans son comportement).

126
Jukka K. Korpela
<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

La méta-tag doit être la première balise après la balise principale, sinon cela ne fonctionnera pas.

18
Ty Petrice

Il y a quelque chose de très important dans ce sujet qui a été abordé mais qui n'a pas été expliqué en détail. L’approche HTML (ajout d’une balise méta en tête) ne fonctionne de manière cohérente que sur du HTML brut ou des pages de serveur très basiques. Mon site est un site très complexe piloté par un serveur avec des pages maîtres, des thèmes et de nombreux contrôles tiers, etc. Ce que j’ai découvert, c’est que certains de ces contrôles ajoutaient par programmation leurs propres balises au code HTML final, qui étaient ensuite transférées navigateur au début de la balise principale. Cela a efficacement rendu les balises méta HTML inutiles.

Eh bien, si vous ne pouvez pas les battre, rejoignez-les. La seule solution qui a fonctionné pour moi est de faire exactement la même chose dans l'événement de pré-rendu de mes pages maîtres en tant que tel:

Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    Dim MetaTag As HtmlMeta = New HtmlMeta()
    MetaTag.Attributes("http-equiv") = "Content-Type"
    MetaTag.Attributes("content") = "text/html; charset=utf-8;"
    Page.Header.Controls.AddAt(0, MetaTag)

    MetaTag = New HtmlMeta()
    MetaTag.Attributes("http-equiv") = "X-UA-Compatible"
    MetaTag.Attributes("content") = "IE=9,chrome=1"
    Page.Header.Controls.AddAt(0, MetaTag)
End Sub

C'est VB.NET, mais la même approche fonctionnerait pour n'importe quelle technologie côté serveur. Tant que vous vous assurez que c'est la dernière chose à faire avant que la page ne soit rendue.

10
David Esquivel

mettre un doctype comme première ligne de votre document html

<!DOCTYPE html>

vous trouverez des explications détaillées sur la compatibilité des documents Internet Explorer ici: Définition de la compatibilité des documents

6
inancsevinc

Pour empêcher le mode quirks, définissez un "type de document" comme:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Pour que IE rende la page en mode document IE9:

<meta http-equiv="x-ua-compatible" content="IE=9">

Veuillez noter que "IE=Edge" fera en sorte que IE rende la page avec le mode document le plus récent, plutôt que le mode document IE9.

5
SuperDuck

Assurez-vous de prendre en compte que l'ajout de cette balise,

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

n'autorise que la compatibilité avec les dernières versions. Tout dépend de vos bibliothèques

3
eoinDeveloper

J'ai essayé avec une autre méthode:

Appuyez sur la touche F12 Ensuite, à droite du menu déroulant, sélectionnez Internet Explorer version 9.

C'est ça et ça a fonctionné pour moi.

0
Madhu Sareen

Assurez-vous d'utiliser le bon doctype.

par exemple.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

ou juste

<!doctype html>

et aussi lire et comprendre le fonctionnement des modes de compatibilité et de la barre d’outils de développement pour IE et définir les modes pour IE: 

0
Moin Zaman

J'ai rencontré un problème comme ma page principale index.jsp contient la ligne ci-dessous, mais le rendu final n'était pas correct dans IE. Trouvé le problème et j'ai ajouté le code dans tous les fichiers que j'ai inclus dans index.jsp. Hourra! ça a marché.

Donc, vous devez ajouter le code ci-dessous dans tous les fichiers que vous incluez dans la page, sinon cela ne fonctionnera pas.

    <!doctype html>
    <head>
      <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    </head>
0