71 votes

Forcer à utiliser le mode de document standard Internet Explorer IE9

comment forcer à utiliser le mode document standard d'Internet Explorer IE9, j'ai construit un site Web et lors du rendu, IE9 utilise le mode Quirks à chaque fois, mais je souhaite utiliser le mode standard pour le rendu.

128voto

Jukka K. Korpela Points 71599
 <!doctype html>
 <meta http-equiv="X-UA-Compatible" content="IE=Edge">

Cela rend chaque version de IE utiliser son mode standard, de sorte que IE 9 utiliser IE 9 normes de la mode. (Si vous voulais des versions plus récentes d'internet explorer, utilisez IE 9 normes de la mode, vous devez le remplacer Edge par 9. Mais il est difficile de voir pourquoi vous le voulez.)

Pour les explications, voir http://hsivonen.iki.fi/doctype/#ie8 (il semble plutôt compliqué, mais c'est parce que IE est en désordre dans ses comportements).

18voto

typetrice Points 109
 <!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.

10voto

David Esquivel Points 51

Il y a quelque chose de très important sur ce sujet a été abordé, mais pas complètement expliqué. Le html approche (l'ajout d'une balise meta dans le head) ne fonctionne que de manière cohérente sur du html brut, ou très serveur de base de pages. Mon site est très complexe gérés par le serveur du site avec les pages maîtres, la thématisation et beaucoup de contrôles tiers etc. Ce que j'ai constaté, c'est que certains de ces contrôles ont été par programme en ajoutant leurs propres étiquettes pour le HTML final être poussé à l'navigateur au début de la balise head; effectivement rendu les balises HTML meta inutile.

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 le pré-rendu de l'événement de mon maître pages 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 pourrait fonctionner pour n'importe quel côté serveur de la technologie. Aussi longtemps que vous vous assurez que c'est la dernière chose qui se fait juste avant que la page est affichée.

6voto

inancsevinc Points 411

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

6voto

SuperDuck Points 1026

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 que IE rendra la page avec le mode document le plus récent, plutôt que le mode document IE9.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X