Was macht ?

1616

Was ist der Unterschied, wenn eine Webseite mit beginnt

<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 

und Wenn Seite mit beginnt

<!DOCTYPE html> 
<html> 
  <head> 
     <!-- without X-UA-Compatible meta -->

Wenn es keinen Unterschied gibt, kann ich den X-UA-CompatibleMeta-Header einfach ignorieren, da ich nur möchte, dass er in allen IE-Versionen im Standardmodus gerendert wird.

0
1845

November 2021 aktualisiert

Da diese Antwort jetzt über 10 Jahre alt ist, würde ich empfehlen, dieses Tag ganz wegzulassen, es sei denn, Sie müssen alte Legacy-Browser unterstützen.

Aktualisierung Oktober 2015

Diese Antwort wurde vor einigen Jahren gepostet und jetzt sollte die Frage wirklich lauten, sollten Sie überhaupt in Betracht ziehen, das X-UA-CompatibleTag auf Ihrer Website zu verwenden? mit den Änderungen, die Microsoft an seinen Browsern vorgenommen hat (mehr dazu weiter unten).

X-UA-CompatibleJe nachdem, welche Microsoft-Browser Sie unterstützen, müssen Sie das Tag möglicherweise nicht weiter verwenden . Wenn Sie IE9 oder IE8 unterstützen müssen, würde ich die Verwendung des Tags empfehlen. Wenn Sie nur die neuesten Browser (IE11 und/oder Edge) unterstützen, würde ich in Betracht ziehen, dieses Tag ganz zu löschen. Wenn Sie Twitter Bootstrap verwenden und Validierungswarnungen entfernen müssen, muss dieses Tag in der angegebenen Reihenfolge angezeigt werden. Zusätzliche Informationen unten:


Mit dem X-UA-CompatibleMeta-Tag können Webautoren auswählen, mit welcher Version von Internet Explorer die Seite gerendert werden soll. IE11 hat Änderungen an diesen Modi vorgenommen; siehe den IE11-Hinweis unten. Microsoft Edge , der Browser, der IE11 ersetzt hat, berücksichtigt das X-UA-CompatibleMeta-Tag nur unter bestimmten Umständen. Siehe den Microsoft Edge-Hinweis unten.

Laut Microsoft sollte das X-UA-CompatibleTag bei Verwendung so hoch wie möglich in Ihrem Dokument stehen head:

If you are using the X-UA-Compatible META tag you want to place it as close to the top of the page's HEAD as possible. Internet Explorer begins interpreting markup using the latest version. When Internet Explorer encounters the X-UA-Compatible META tag it starts over using the designated version's engine. This is a performance hit because the browser must stop and restart analyzing the content.

Hier sind Ihre Optionen:

  • "IE=Kante"
  • "IE=11"
  • "IE=EmulateIE11"
  • "IE=10"
  • "IE=EmulateIE10"
  • "IE=9"
  • "IE=EmulateIE9
  • "IE=8"
  • "IE=EmulateIE8"
  • "IE=7"
  • "IE=EmulateIE7"
  • "IE=5"

Um zu verstehen, was die einzelnen Begriffe bedeuten, finden Sie hier die von Microsoft bereitgestellten Definitionen:

Internet Explorer supports a number of document compatibility modes that enable different features and can affect the way content is displayed:

  • Edge mode tells Internet Explorer to display content in the highest mode available. With Internet Explorer 9, this is equivalent to IE9 mode. If a future release of Internet Explorer supported a higher compatibility mode, pages set to edge mode would appear in the highest mode supported by that version. Those same pages would still appear in IE9 mode when viewed with Internet Explorer 9. Internet Explorer supports a number of document compatibility modes that enable different features and can affect the way content is displayed:
  • IE11 mode provides the highest support available for established and emerging industry standards, including the HTML5, CSS3 and others.
  • IE10 mode provides the highest support available for established and emerging industry standards, including the HTML5, CSS3 and others.
  • IE9 mode provides the highest support available for established and emerging industry standards, including the HTML5 (Working Draft), W3C Cascading Style Sheets Level 3 Specification (Working Draft), Scalable Vector Graphics (SVG) 1.0 Specification, and others. [Editor Note: IE 9 does not support CSS3 animations].
  • IE8 mode supports many established standards, including the W3C Cascading Style Sheets Level 2.1 Specification and the W3C Selectors API; it also provides limited support for the W3C Cascading Style Sheets Level 3 Specification (Working Draft) and other emerging standards.
  • IE7 mode renders content as if it were displayed in standards mode by Internet Explorer 7, whether or not the page contains a <!DOCTYPE> directive.
  • Emulate IE9 mode tells Internet Explorer to use the <!DOCTYPE> directive to determine how to render content. Standards mode directives are displayed in IE9 mode and quirks mode directives are displayed in IE5 mode. Unlike IE9 mode, Emulate IE9 mode respects the <!DOCTYPE> directive.
  • Emulate IE8 mode tells Internet Explorer to use the <!DOCTYPE> directive to determine how to render content. Standards mode directives are displayed in IE8 mode and quirks mode directives are displayed in IE5 mode. Unlike IE8 mode, Emulate IE8 mode respects the <!DOCTYPE> directive.
  • Emulate IE7 mode tells Internet Explorer to use the <!DOCTYPE> directive to determine how to render content. Standards mode directives are displayed in Internet Explorer 7 standards mode and quirks mode directives are displayed in IE5 mode. Unlike IE7 mode, Emulate IE7 mode respects the <!DOCTYPE> directive. For many web sites, this is the preferred compatibility mode.
  • IE5 mode renders content as if it were displayed in quirks mode by Internet Explorer 7, which is very similar to the way content was displayed in Microsoft Internet Explorer 5.

IE10 HINWEIS: Ab IE10 verhält sich der Quirks-Modus anders als in früheren Versionen des Browsers. In IE9 und früheren Versionen beschränkte der Quirks-Modus die Webseite auf die von IE5.5 unterstützten Funktionen. In IE10 entspricht der Quirks-Modus den in der HTML5-Spezifikation angegebenen Unterschieden.

Persönlich wähle ich immer das http-equiv="X-UA-Compatible" content="IE=edge"Meta-Tag, da ältere Versionen viele Fehler enthalten und ich nicht möchte, dass IE entscheidet, in den „Kompatibilitätsmodus“ zu wechseln und meine Website als IE7 vs. IE8 oder 9 anzuzeigen. Ich bevorzuge immer die neueste Version von IE.

IE11

Von Microsoft :

Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.

Use the HTML5 document type declaration to enable edge mode:

<!doctype html>

Edge mode was introduced in Internet Explorer 8 and has been available in each subsequent release. Note that the features supported by edge mode are limited to those supported by the specific version of the browser rendering the content.

Starting with IE11, document modes are deprecated and should no longer be used, except on a temporary basis. Make sure to update sites that rely on legacy features and document modes to reflect modern standards.

If you must target a specific document mode so that your site functions while you rework it to support modern standards and features, be aware that you're using a transitional feature, one that may not be available in future versions.

If you currently use the x-ua-compatible header to target a legacy document mode, it's possible your site won't reflect the best experience available with IE11.

Microsoft Edge (Ersatz für Internet Explorer, der im Lieferumfang von Windows 10 enthalten ist)

Informationen zum X-UA-CompatibleMeta-Tag für die „Edge“-Version des IE. Von Microsoft :

Introducing the “living” Edge document mode

As we announced in August 2013, we are deprecating document modes as of IE11. With our latest platform updates, the need for legacy document modes is primarily limited to Enterprise legacy web apps. With new architectural changes, these legacy document modes will be isolated from changes in the “living” Edge mode, which will help to guarantee a much higher level of compatibility for customers who depend on those modes and help us move even faster on improvements in Edge. IE will still honor document modes served by intranet sites, sites on the Compatibility View list, and when used with Enterprise Mode only.

Public Internet sites will be rendered with the new Edge mode platform (ignoring X-UA-Compatible). It is our goal that Edge is the "living" document mode from here out and no further document modes will be introduced going forward.

Mit den Änderungen in Microsoft Edge, die Dokumentmodi in den meisten Fällen nicht mehr unterstützen, verfügt Microsoft über ein Tool , mit dem Sie Ihre Website scannen können, um zu überprüfen, ob sie Code enthält, der nicht mit Edge kompatibel ist.

Chrome=1 Info für IE

Es gibt auch chrome=1, die Sie zusammen mit einer der oben genannten Optionen verwenden oder verwenden können, wie z. B.: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">. chrome=1ist für Googles Chrome Frame, der wie folgt definiert ist:

Google Chrome Frame is an open source browser plug-in. Users who have the plug-in installed have access to Google Chrome's open web technologies and speedy JavaScript engine when they open pages in the browser.

Google Chrome Frame seamlessly enhances your browsing experience in Internet Explorer. It displays Google Chrome Frame enabled sites using Google Chrome’s rendering technology, giving you access to the latest HTML5 features as well as Google Chrome’s performance and security features without in any way interrupting your usual browser usage.

When Google Chrome Frame is installed, the web just gets better without you having to think about it.

Aber damit dieses Plug-in funktioniert, müssen Sie chrome=1das X-UA-CompatibleMeta-Tag verwenden.

Weitere Informationen zu Chrome Frame finden Sie hier .

Hinweis: Google Chrome Frame funktioniert nur für IE6 bis IE9 und wurde am 25. Februar 2014 eingestellt. Weitere Informationen finden Sie hier . Danke an @mck für den Link.

Validierung:

HTML5 :

Die Seite wird nur dann mit dem W3-Validator validiert, wenn verwendet wird <meta http-equiv="X-UA-Compatible" content="IE=Edge">. Für andere Werte wird der Fehler ausgegeben: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.Mit anderen Worten, wenn Sie ihn haben IE=edge,chrome=1, wird er nicht validiert. Ich ignoriere diesen Fehler vollständig, da moderne Browser diese Codezeile einfach ignorieren.

Wenn Sie über vollständig gültigen Code verfügen müssen, sollten Sie dies auf Serverebene tun, indem Sie den HTTP-Header festlegen. Als Anmerkung sagt Microsoft: If both of these instructions are sent (meta and HTTP), the developer's preference (meta element) takes precedence over the web server setting (HTTP header). Weitere Informationen zum Festlegen eines HTTP-Headers finden Sie in der Antwort von olibre oder der Antwort von bitinn .

XHTML

Es gibt kein Problem mit der Validierung bei der Verwendung <meta http-equiv="X-UA-Compatible" content="IE=Edge" />, solange das Tag ordnungsgemäß geschlossen ist (dh />vs >).

Twitter Bootstrap (V3 und darunter)

Dieses Tag wird mindestens seit 2014 vom Bootstrap-Team dringend empfohlen, und Bootlint , der vom twbs-Team verfasste Linter, gibt weiterhin eine Warnung aus, wenn das Tag weggelassen wird. Der Linter unterscheidet zwischen Warnungen und Fehlern, und daher kann die Schwere des Weglassens dieses Tags als gering angesehen werden.


Weitere Informationen finden Sie auf X-UA-Compatibleder Microsoft- Website Defining Document Compatibility .

Weitere Informationen darüber, was IE unterstützt, finden Sie unter caniuse.com .

Weitere Informationen zu den Twitter-Bootstrap-Anforderungen finden Sie auf der Wiki-Seite des Bootlint-Projekts .

30
  • 46
    Was würde passieren, wenn ich kein „X-UA-Compatible“ in den Headern habe? 21. Juli 2011 um 7:12 Uhr
  • 51
    Grundsätzlich passiert, wenn Sie X-UA-Compatible haben, dass es IE mitteilt, wie es sich in Bezug auf den von Ihnen festgelegten Wert verhalten soll (IE = Kante usw.). Wenn es nicht vorhanden ist, zeigt IE der Website, wie es seiner Meinung nach am besten angezeigt werden sollte . Das könnte der Kompatibilitätsmodus sein oder die neueste Version von IE. Was Microsoft/IE für das Beste hält. Sinn ergeben?
    – L84
    21. Juli 2011 um 18:09 Uhr
  • 2
    @TravisJ - Nach meinem Verständnis bedeutet der höchste verfügbare Modus im Grunde, dass IE 8 bis zu IE8-Modi unterstützen kann, IE9 IE9-Modi unterstützen kann und so weiter. Ich habe einige Definitionen für jeden von Microsoft bereitgestellten Modus hinzugefügt.
    – L84
    24. September 2012 um 23:59 Uhr
  • 11
    @AdrienBe - Ich stimme voll und ganz zu! Bisher war IE 10 für mich das Beste, aber ich verachte jede andere Version. Einmal hatte ich ein Seiten-Setup mit einigen Effekten, etwa 200-300 Zeilen HTML und etwa 20 Minuten Codierung. Um den IE zum Laufen zu bringen, musste ich weitere 1.000 Codezeilen (hauptsächlich JavaScript von Drittanbietern) und 2-3 Stunden Arbeit hinzufügen! Ich hasse IE wirklich =>
    – L84
    28. März 2013 um 2:02 Uhr
  • 9
    Google Chrome Frame wird im Januar 2014 eingestellt: blog.chromium.org/2013/06/retiring-chrome-frame.html
    – mck
    15. Juni 2013 um 17:46 Uhr
359

Verwenden Sie content="IE=edge,chrome=1"   Andere X-UA-CompatibleModi überspringen

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
                                   -------------------------- 
  • Kein Kompatibilitätssymbol
    In der IE9-Adressleiste wird die Schaltfläche „Kompatibilitätsansicht
    “ nicht angezeigt, und auf der Seite wird auch kein Durcheinander von unangebrachten Menüs, Bildern und Textfeldern angezeigt.

  • Features
    Dieses Meta-Tag ist erforderlich, um es javascript::JSON.parse()auf IE8 zu aktivieren
    (auch wenn <!DOCTYPE html>es vorhanden ist)

  • Korrektheit
    Rendering/Ausführung von modernem HTML/CSS/JavaScript ist valider (schöner).

  • Leistung
    Die Trident-Rendering-Engine sollte im Edge -Modus schneller laufen.


Verwendungszweck

In Ihrem HTML

<!DOCTYPE html> 
<html> 
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  • IE=edgebedeutet, dass IE die neueste (Edge-)Version seiner Rendering-Engine verwenden sollte
  • chrome=1bedeutet, dass IE die Chrome-Rendering-Engine verwenden sollte, falls installiert

Oder besser in der Konfiguration Ihres Webservers:
(siehe auch die Antwort des RiaD )

  • Apache wie von Pixeline vorgeschlagen

    <IfModule mod_setenvif.c>
      <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
      </IfModule>
    </IfModule>
    <IfModule mod_headers.c>
      Header append Vary User-Agent
    </IfModule>
    
  • Nginx wie von Stef Pause vorgeschlagen

    server {
      #...
      add_header X-UA-Compatible "IE=Edge,chrome=1";
    }
    
  • Lack - Proxy wie von Lucas Riutzel vorgeschlagen

    sub vcl_deliver {
      if( resp.http.Content-Type ~ "text/html" ) {
        set resp.http.X-UA-Compatible = "IE=edge,chrome=1";
      }
    }
    
  • IIS (seit v7)

    <configuration>
      <system.webServer>
         <httpProtocol>
            <customHeaders>
               <add name="X-UA-Compatible" value="IE=edge,chrome=1" />
            </customHeaders>
         </httpProtocol>
      </system.webServer>
    </configuration>
    

Microsoft empfiehlt den Edge-Modus seit IE11

Wie von Lynda bemerkt (siehe Kommentare), empfehlen die Kompatibilitätsänderungen in IE11 den Edge-Modus :

Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.

Aber die Position von Microsoft war nicht klar. Eine andere MSDN-Seite hat den Edge-Modus nicht empfohlen :

Because Edge mode forces all pages to be opened in standards mode, regardless of the version of Internet Explorer, you might be tempted to use this for all pages viewed with Internet Explorer. Don't do this, as the X-UA-Compatible header is only supported starting with Windows Internet Explorer 8.

Stattdessen empfahl Microsoft die Verwendung von <!DOCTYPE html>:

If you want all supported versions of Internet Explorer to open your pages in standards mode, use the HTML5 document type declaration [...]

Wie Ricardo (in den Kommentaren unten) erklärt, kann jeder DOCTYPE (HTML4, XHTML1...) verwendet werden, um den Standards-Modus auszulösen, nicht nur der DOCTYPE von HTML5. Wichtig ist, immer einen DOCTYPE auf der Seite zu haben.

Clara Onager hat sogar in einer älteren Version von Legacy-Dokumentmodi spezifizieren bemerkt :

Edge mode is intended for testing purposes only; do not use it in a production environment.

Es ist so verwirrend, dass Usman Y dachte, Clara Onager spreche über:

The [...] example is provided for illustrative purposes only; don't use it in a production environment.

<meta http-equiv="X-UA-Compatible" content="IE=7,9,10" >

Nun ... Im Rest dieser Antwort gebe ich weitere Erklärungen, warum die Verwendung content="IE=edge,chrome=1"in der Produktion eine gute Praxis ist.


Geschichte

Viele Jahre (2000 bis 2008) lag der Marktanteil von IE bei über 80 % . Und IE v6 wurde als De-facto -Standard angesehen (80 % bis 97 % Marktanteil in 2003 , 2004, 2005 und 2006 nur für IE6, mehr Marktanteil mit allen IE-Versionen).

Da IE6 Webstandards nicht respektierte , mussten Entwickler ihre Website mit IE6 testen. Diese Situation war großartig für Microsoft (MS), da Webentwickler MS-Produkte kaufen mussten (z. B. IE kann nicht verwendet werden, ohne Windows zu kaufen), und es gewinnbringender war, nicht konform zu bleiben (dh Microsoft wollte zum Standard werden, der andere ausschließt ). Firmen).

Daher waren viele Websites nur IE6-kompatibel, und da IE nicht mit dem Webstandard kompatibel war, wurden alle diese Websites in Standard-kompatiblen Browsern nicht gut wiedergegeben. Schlimmer noch, viele Websites erforderten nur IE .

Zu diesem Zeitpunkt begann Mozilla jedoch mit der Entwicklung von Firefox, wobei so weit wie möglich alle Webstandards eingehalten wurden (andere Browser wurden implementiert, um Seiten so darzustellen, wie dies von IE6 getan wird). Da immer mehr Webentwickler die neuen Webstandard-Funktionen nutzen wollten, wurden immer mehr Websites von Firefox stärker unterstützt als vom IE.

Als die Marktanteile von IE abnahmen, erkannte MS, dass es keine gute Idee war, standardinkompatibel zu bleiben. Daher hat MS begonnen, eine neue IE-Version (IE8/IE9/IE10) zu veröffentlichen, die mehr und mehr die Webstandards respektiert.


Das webinkompatible Problem

Aber das Problem sind alle Websites, die für IE6 entwickelt wurden: Microsoft konnte keine neuen IE-Versionen veröffentlichen, die mit diesen alten, von IE6 entworfenen Websites nicht kompatibel sind. Anstatt die IE-Version abzuleiten, für die eine Website entworfen wurde, forderte MS die Entwickler auf, zusätzliche Daten ( X-UA-Compatible) in ihre Seiten einzufügen.

2016 wird noch IE6 verwendet

Heutzutage wird immer noch IE6 verwendet (0,7 % im Jahr 2016) (4,5 % im Januar 2014), und einige Internet-Websites sind immer noch nur IE6-kompatibel. Einige Intranet-Websites/-Anwendungen werden mit IE6 getestet. Einige Intranet-Websites sind nur auf IE6 zu 100 % funktionsfähig. Diese Unternehmen/Abteilungen ziehen es vor, die Migrationskosten aufzuschieben: andere Prioritäten, niemand weiß mehr, wie die Website/Anwendung implementiert wurde, der Eigentümer der alten Website/Anwendung ging in Konkurs...

China repräsentiert 50 % der IE6-Nutzung im Jahr 2013, aber es könnte sich in den nächsten Jahren ändern, da die chinesische Linux-Distribution ausgestrahlt wird .

Vertrauen Sie auf Ihre Web-Kenntnisse

Wenn Sie den Webstandard respektieren (versuchen), können Sie einfach immer http-equiv="X-UA-Compatible" content="IE=edge,chrome=1". Um die Kompatibilität mit alten Browsern aufrechtzuerhalten, vermeiden Sie einfach die Verwendung der neuesten Webfunktionen: Verwenden Sie die Untergruppe, die vom ältesten Browser unterstützt wird, den Sie unterstützen möchten. Oder wenn Sie noch weiter gehen möchten, können Sie Konzepte wie Graceful Degradation , Progressive Enhancement und Unobtrusive JavaScript übernehmen . (Vielleicht interessiert Sie auch die Lektüre Was sollte ein Webentwickler beachten? .)

Kümmern Sie sich nicht um die beste Wiedergabe der IE-Version: Das ist nicht Ihre Aufgabe, da Browser den Webstandards entsprechen müssen. Wenn Ihre Website standardkonform ist und mäßig die neuesten Funktionen verwendet, müssen die Browser daher mit Ihrer Website kompatibel sein .

Da es viele Kampagnen gibt, um den IE6 zu töten ( IE6 nicht mehr , MS-Kampagne ), können Sie es heutzutage vermeiden, Zeit mit IE-Tests zu verschwenden!

Persönliche IE6-Erfahrung

In den Jahren 2009-2012 arbeitete ich für ein Unternehmen, das IE6 als offiziell zugelassenen Einzelbrowser verwendete . Ich musste eine Intranet-Website nur für IE6 implementieren. Ich habe mich entschieden, den Webstandard zu respektieren, aber die IE6-fähige Teilmenge (HTML/CSS/JS) zu verwenden.

Es war schwierig, aber als das Unternehmen auf IE8 umstieg, wurde die Website immer noch gut gerendert, da ich Firefox und Firebug verwendet hatte , um die Kompatibilität mit dem Webstandard zu überprüfen ;)

19
  • 2
    Der Edge-Modus ist nur für Testzwecke vorgesehen; Verwenden Sie es nicht in einer Produktionsumgebung.' Siehe msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx 22. April 2013 um 14:54 Uhr
  • 5
    Bitte @ClaraOnager nehmen Sie sich etwas Zeit, um zu erklären, was in meiner Antwort falsch ist (aus Ihrer Sicht). Auch wenn MS die Verwendung des Edge-Modus in der Produktionsumgebung nicht empfiehlt , gibt es gute Gründe, ihn in der Produktionsumgebung zu verwenden. Es ist wichtig, unsere Best Practices technisch zu verdeutlichen. Ich teile gerne mein Wissen und meine Erfahrungen. Ich hoffe du auch. Wir können uns gemeinsam verbessern ;) Cheers
    – oHo
    23. April 2013 um 9:55 Uhr
  • 2
    Hallo @Ricardo, da stimme ich dir zu. Microsoft sagt "Wenn Sie möchten, dass alle unterstützten Versionen von Internet Explorer Ihre Seiten im Standardmodus öffnen, verwenden Sie HTML5 [...]" im Abschnitt Legacy-Dokumentmodi verstehen (siehe Tipp ). Vielleicht ist meine Erklärung unklar... Vielleicht habe ich etwas falsch verstanden... Ich habe meinen Text geändert... Was haltet ihr von meinen Änderungen? ist es ok für dich? Was raten Sie, meine Antwort zu ändern/verbessern? Vielen Dank für Ihre Rückmeldung. Prost ;-)
    – oHo
    18. Juni 2013 um 5:12 Uhr
  • 5
    @ClaraOnager ... in Ihrer ersten Antwort zeigen Sie falsch auf der Referenzseite. MS sagt, dass Sie nicht in der Produktionsumgebung verwenden sollen für: <meta http-equiv="X-UA-Compatible" content="IE=7, 9,10" > nicht die anderen Edge-Dinge. 9. Oktober 2013 um 16:25 Uhr
  • 3
    Über die Verwendung des Edge-Modus in der Produktionsumgebung. Von Microsoft:Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
    – L84
    21. Oktober 2013 um 4:16 Uhr
62

Der Unterschied besteht darin, dass, wenn Sie nur die angeben , die Einstellungen der KompatibilitätsansichtDOCTYPE von IE Vorrang haben. Standardmäßig zwingen diese Einstellungen alle Intranetsites in die Kompatibilitätsansicht, unabhängig von . Es gibt auch ein Kontrollkästchen, um die Kompatibilitätsansicht für alle Websites zu verwenden, unabhängig von .DOCTYPEDOCTYPE

Dialog Einstellungen der IE-Kompatibilitätsansicht

X-UA-Compatibleüberschreibt die Einstellungen der Kompatibilitätsansicht, sodass die Seite unabhängig von den Browsereinstellungen im Standardmodus gerendert wird. Dies erzwingt den Standardmodus für:

  • Intranetseiten
  • externe Webseiten, wenn der Computeradministrator „Alle Websites in der Kompatibilitätsansicht anzeigen“ als Standard ausgewählt hat – denken Sie an große Unternehmen, Regierungen, Universitäten
  • wenn Sie versehentlich in der Microsoft-Kompatibilitätsansichtsliste landen
  • Fälle, in denen Benutzer Ihre Website manuell zur Liste in den Einstellungen der Kompatibilitätsansicht hinzugefügt haben

DOCTYPEallein kann das nicht; Sie landen in diesen Fällen unabhängig von in einem der Kompatibilitätsansichtsmodi DOCTYPE.

Wenn sowohl das metaTag als auch der HTTP-Header angegeben sind, hat das metaTag Vorrang.

Diese Antwort basiert auf der Untersuchung der vollständigen Regeln zur Entscheidung über den Dokumentmodus in IE8 , IE9 und IE10 . Beachten Sie, dass das Betrachten von der DOCTYPEallerletzte Fallback für die Entscheidung über den Dokumentmodus ist.

5
  • 1
    Im Intranet-Szenario rendert IE10 standardmäßig im Kompatibilitätsmodus. Siehe stackoverflow.com/questions/13284083/… . Dieses Tag ist standardmäßig nicht für das Internet erforderlich, wird jedoch (standardmäßig) benötigt, wenn myinternalserver/myapp verwendet wird . Ich wollte diesen Kommentar hinzufügen, da der Unterschied zwischen Internet und Intranet nur aus dem Text im Screenshot hervorgeht, nicht aus dem Text von Antworten auf der Seite.
    – yzorg
    23. April 2013 um 13:08 Uhr
  • Du hast Recht, das hätte ich deutlicher sagen sollen. Ich habe den Beitrag umgeschrieben; lassen Sie mich wissen, wenn ich noch etwas ansprechen sollte. Danke!
    – andrewdotn
    23. April 2013 um 16:32 Uhr
  • Danke! Diese Antwort ist viel klarer als andere Antworten zu Intranet-Sites. Andere Antworten gehen auf technische Details ein, warum und wie. Ich hasse MS IE. Auch gutes Schreiben: Ein Absatz macht deutlich, warum wir das Meta-Tag brauchen. Bravo 4. Mai 2016 um 10:42 Uhr
  • 3
    Ich wünschte, ich könnte diese Antwort hundertmal positiv bewerten. Lebensrettende Bildschirmaufnahme genau dort. Der Blutdruck sinkt, während ich das schreibe...
    – EvilDr
    17. März 2017 um 7:07 Uhr
  • Toll toll toll! Vielen Dank für diese Antwort. 16. Mai 2018 um 9:28 Uhr
27

Verwenden Sie dies, um den IE zu zwingen, diese lästige Browser-Kompatibilitätsschaltfläche in der Adressleiste auszublenden:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
  • 1
    Der Edge-Modus ist nur für Testzwecke vorgesehen; Verwenden Sie es nicht in einer Produktionsumgebung.' Siehe msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx 22. April 2013 um 14:54 Uhr
  • 4
    Aus Sicherheitsgründen verwende ich <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">die chrome=1Anweisung, damit IE6-, 7-, 8-Benutzer aufgefordert werden, Chrome Frame zu installieren/zu verwenden . Sogar HTML5 Boilerplate verwendet es. 18. Juni 2013 um 21:49 Uhr
  • 10
    @ClaraOnager Obwohl Microsoft es sagt, bedeutet es nicht unbedingt, dass sie Recht haben. Ich habe es <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">seit dem Tag, an dem es herauskam, ohne Probleme verwendet. Tatsächlich habe ich meinem Team und mir bereits Hunderte von Kopfschmerzen erspart, indem ich den IE der Benutzer dazu gebracht habe, seine neueste Engine zum Rendern der von uns erstellten Seiten zu verwenden. Im Gegensatz zu Ihnen und Microsoft empfehle ich jedem, den obigen Meta-Tag jedes Mal zu verwenden . Solange es den IE noch gibt, werden wir "gezwungen" sein, diesen Meta-Tag zu verwenden :p 18. Juni 2013 um 21:56 Uhr
  • Dies hat sich mit IE11 geändert. Diese Version hat einen dramatischen Sprung in die Welt der Browser gemacht, die offiziellen Standards folgen. Es ist so weit gegangen, dass es sich nicht einmal als Internet Explorer identifiziert! Jetzt heißt es, es sei "Netscape" und enthält nichts in den Browserinformationen, um seine wahre Identität preiszugeben. Sollten Sie ab dieser Version noch auf irgendwelche Macken im IE-Browser stoßen, müssen Sie diese in den IE10 zwingen, indem Sie <meta http-equiv="X-UA-Compatible" content="IE=10">. Dann meldet es sich als Microsoft Internet Explorer.
    – awe
    28. November 2013 um 7:47 Uhr
  • Steht vor dem gleichen verwandten Problem, wenn mir jemand helfen kann: stackoverflow.com/questions/22013880/…
    – dsi
    26. Februar 2014 um 5:28 Uhr
26

Da ich der markierten Antwort keinen Kommentar hinzufügen kann, werde ich dies einfach hier posten.

Neben der richtigen Antwort können Sie diese auch validieren lassen. Da dieses Meta-Tag nur für IE bestimmt ist, müssen Sie lediglich eine IE-Bedingung hinzufügen.

<!--[if IE]>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<![endif]-->

Dies ist genauso wie das Hinzufügen einer anderen bedingten IE-Anweisung und funktioniert nur für IE und keine anderen Browser sind betroffen.

1
  • 5
    Bedingte Kommentare sollten nicht verwendet werden, AUSSER um auf HTML für <=IE9 abzuzielen. (Dies galt auch, als diese Antwort geschrieben wurde)
    – EKW
    26. Juni 2016 um 3:43 Uhr
19

Ich denke, dieses Diagramm von Microsoft erklärt alles. Um dem IE mitzuteilen, wie der Inhalt gerendert werden soll, muss !DOCTYPE mit dem X-UA-Compatible-Meta-Tag arbeiten. !DOCTYPE selbst hat keinen Einfluss auf die Änderung des IE-Dokumentmodus.

Geben Sie hier die Bildbeschreibung ein

http://ie.microsoft.com/testdrive/ieblog/2010/Mar/02_HowIE8DeterminesDocumentMode_3.png

4
  • 3
    Hier ist eine aktualisierte Version, die IE9 enthält. OMG ... dh.microsoft.com/testdrive/ieblog/2010/Jun/…
    – Spiralis
    20. Dezember 2012 um 12:55 Uhr
  • 3
    Und dieses enthält IE10: msdn.microsoft.com/en-us/library/ff406036%28v=vs.85%29.aspx Die verschiedenen Kapitel haben ihre eigenen separaten Flussdiagramme ...
    – Spiralis
    20. Dezember 2012 um 13:02 Uhr
  • Sie haben dieses Flussdiagramm falsch gelesen. Ohne X-UA-Compatible sucht der Browser nach <!DOCTYPE>. Wenn es einen findet, rendert es im Standardmodus (auch bekannt als "EmulateIE8"). Wenn dies nicht der Fall ist, kehrt es in den "Quirks-Modus" zurück. 13. Oktober 2014 um 20:14 Uhr
  • 1
    Danke, dass Sie das Bild auf Stackoverflow hochgeladen haben. Die ursprünglichen Links zu Microsoft sind alle tot.
    – Elmue
    13. Mai 2020 um 21:18 Uhr
14

Nur ein Satz zu sagen Weisen Sie Internet Explorer an, seine neueste Rendering-Engine zu verwenden

<meta http-equiv="x-ua-compatible" content="ie=edge">
12

Nur der Vollständigkeit halber müssen Sie es nicht wirklich zu Ihrem HTML hinzufügen (was in HTML5 ein unbekanntes http-Äquivalent ist).

Tun Sie dies und schauen Sie niemals zurück (erstes Beispiel für Apache , zweites für nginx )

Header set X-UA-Compatible "IE=Edge,chrome=1"

add_header X-UA-Compatible "IE=Edge,chrome=1";
1
  • 2
    @HueiTan - Ich denke, das Poster sagt, dass beim Versuch, die Seite mit dem W3-Validator zu validieren , ein Fehler ausgegeben wird: Bad value X-UA-Compatible for attribute http-equiv on element meta.- Das bedeutet nicht, dass es nicht funktioniert. Es ist einfach kein gültiger Code.
    – L84
    7. Juni 2014 um 1:50 Uhr
8
<meta http-equiv="X-UA-Compatible" content="IE=Edge">

Damit diese Zeile wie erwartet funktioniert, stellen Sie Folgendes sicher:

  1. Es ist das erste Element gleich danach<head>
  2. Vor dem Meta-Tag werden keine bedingten Kommentare verwendet, zB auf dem <html>Element

Andernfalls ignorieren einige IE-Versionen es einfach.

AKTUALISIEREN

Diese beiden Regeln sind vereinfacht, aber leicht zu merken und zu überprüfen. Obwohl MSDN-Dokumente besagen, dass Sie Titel und andere Meta-Tags vor diesen setzen können, würde ich dies nicht empfehlen.

Wie funktioniert es mit bedingten Kommentaren?

Interessanter Artikel über die Reihenfolge der Elemente im Kopf. (blogs.msdn.com, für IE)

HINWEIS

Aus der MSDN-Dokumentation :

The X-UA-Compatible [...] must appear in the header of the webpage (the HEAD section) before all other elements except for the title element and other meta elements.

0
5

Wenn Sie Ihre Website im selben Netzwerk wie der Server verwenden, wechselt der IE trotz DOCTYPE gerne in den Kompatibilitätsmodus.
Das Hinzufügen meta http-equiv="X-UA-Compatible" content="IE=Edge" deaktiviert dieses unerwünschte Verhalten.

1
  • Ein anderes Wort für "dasselbe Netzwerk wie der Server" ist Intranet ... also ist IE10 im Grunde standardmäßig für alle Intranetseiten defekt. Siehe Screenshot in der Antwort von @AndrewNeitsch.
    – yzorg
    23. April 2013 um 13:10 Uhr
3

Dies ist buchstäblich 1 Google-Abfrage entfernt , aber hier geht es:

http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx

Understanding legacy document modes

Use the following value to display the webpage in edge mode, which is the highest standards mode supported by Internet Explorer, from Internet Explorer 6 through IE11.

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

Note that this is functionally equivalent to using the HTML5 doctype. It places Internet Explorer into the highest supported document mode. Edge most is most useful for regularly maintained websites that are routinely tested for interoperability between multiple browsers, including Internet Explorer.

Note Starting with IE11, edge mode is considered the preferred document mode. (In earlier versions, it was considered experimental.) To learn more, see Document modes are deprecated. Starting with Windows Internet Explorer 8, some web developers used the edge mode meta element to hide the Compatibility View button on the address bar. As of IE11, this is no longer necessary as the button has been removed from the address bar. Because it forces all pages to be opened in standards mode, regardless of the version of Internet Explorer, you might be tempted to use edge mode for all pages viewed with Internet Explorer. Don't do this, as the X-UA-Compatible header is only supported starting with Internet Explorer 8.

Tip If you want all supported versions of Internet Explorer to open your pages in standards mode, use the HTML5 document type declaration, as shown in the earlier example.

Unter den Suchergebnissen befindet sich auch:

3

2.1.3.5 X-UA-Kompatibilitäts-Meta-Tag und HTTP-Antwort-Header

Diese Funktionalität wird in keiner Version von Microsoft Edge implementiert.

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

Siehe https://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx

Ja, ich weiß, dass ich zu spät zur Party komme, aber ich hatte gerade einige Probleme und Diskussionen, und am Ende ließ mich mein Chef das X-UA-CompatibleTag remove aus allen Dokumenten entfernen, an denen ich gearbeitet habe.

Wenn diese Informationen veraltet oder nicht mehr relevant sind, korrigieren Sie mich bitte.