IE8-Browsermodus vs. Dokumentmodus

72

Kann jemand bitte den Unterschied zwischen IE8- Browsermodus und Dokumentmodus in einfachen Worten erklären ?

  • Was bewirkt, dass sich der Browsermodus ändert?
  • Was bewirkt, dass sich der Dokumentmodus ändert?

  • Wenn ein Benutzer die Modi über Entwicklertools ändert, bleibt die Änderung auch dann bestehen, wenn die Seite aktualisiert wird?

Ich frage dies, weil wir hier einige IE8-Tests durchführen und verschiedene Leute unterschiedliche Kombinationen der Modi haben, und ich möchte versuchen herauszufinden, wie dies geschieht.

mkoryak
quelle
Siehe auch stackoverflow.com/questions/6661313
Paul D. Waite
1
All diese Dinge im Dokumentmodus scheinen überhaupt keinen Sinn zu ergeben. Zum Beispiel kann ich im Dev-Tool einen Dokumentmodus von IE9 mit einem Browsermodus von IE8 einstellen. Warum lassen Sie uns nicht nur den Browsermodus ändern?
Adrien Be
5
@AdrienBe Haben Sie vor dieser Erfahrung festgestellt, dass viele Dinge im IE sinnvoll sind?
Mkoryak

Antworten:

69

Aus diesem Artikel im IE8-Blog mit dem Titel Wie IE8 den Dokumentmodus bestimmt

  1. Die Einstellungen der Entwicklertools überschreiben alle Dokumentmodi für Seiten, die auf einer Registerkarte angezeigt werden.
  2. Das X-UA-kompatible Meta-Tag und der Header überschreiben die Einstellungen für die Kompatibilitätsansicht und den Doctype, es sei denn, der X-UA-kompatible Wert lautet EmulateIE7 oder EmulateIE8.
  3. Die Einstellungen für die Kompatibilitätsansicht des Benutzers überschreiben die Liste der Microsoft-Kompatibilitätsansichten.
  4. Wenn keine der oben genannten Regeln gilt, bestimmt der Doctype, ob die Webseite im IE8-Standard, im IE8-Fast-Standard oder im Quirks-Modus gerendert wird.

Daraus erhalten wir die folgenden Antworten auf Ihre Fragen:

Frage: Was ist in einfachen Worten der Unterschied zwischen Browsermodus und Dokumentmodus?
A. Der Browsermodus wird in den Entwicklertools festgelegt, um unterschiedliche Verhaltensweisen der IE-Browserversion zu emulieren, während der Dokumentmodus auf der Webseite definiert ist, um den IE anzuweisen, die Site aus Kompatibilitätsgründen anders zu rendern.

F. Was bewirkt, dass sich der Browsermodus ändert?
A. Der Benutzer ändert den Browsermodus in den Entwicklertools.

F. Was bewirkt, dass sich der Dokumentmodus ändert?
A. Der vom Webentwickler festgelegte Doctype und das X-UA-kompatible Meta-Tag und der Header.

F. Wenn ein Benutzer die Modi über Entwicklertools ändert, bleibt die Änderung auch dann bestehen, wenn die Seite aktualisiert wird?
A. Der Browsermodus bleibt erhalten, aber wenn Sie den Doctype und X-UA-kompatibel ändern, kehren sie zu den auf der Seite definierten Werten zurück.

UPDATE: Wie Adrien Be weiter unten ausführt, bietet IE9 + die Möglichkeit, den Dokumentmodus in den Entwicklertools über eine Einstellung zu ändern, die bei der Aktualisierung beibehalten wird.

Bradley Mountford
quelle
Danke für die Zusammenfassung. Es ist das erste Mal, dass ich dieses Diagramm sehe. Kein Wunder, dass ich das Gefühl hatte, etwas verpasst zu haben.
Mkoryak
1
msdn.microsoft.com/en-us/library/dd565628(VS.85).aspx#bdmodes hat auch einige weitere Informationen.
EricLaw
Ich bin mir nicht sicher, ob diese Antwort richtig ist, da sie besagt, dass "der Dokumentmodus auf der Webseite definiert ist, um den IE anzuweisen, die Site aus Kompatibilitätsgründen anders zu rendern", wenn sie auch im Entwicklertool geändert werden kann (für IE9 und IE10 ist das sicher wie auch immer).
Adrien Be
@AdrienBe Sie haben die Möglichkeit hinzugefügt, den Dokumentmodus in den Entwicklertools von IE9 zu ändern. IE8 (das ist das Thema der Frage) hatte keinen Dokumentmodus-Umschalter in den Entwicklertools. Trotzdem werde ich unten eine Fußnote hinzufügen, da diese Frage immer noch ziemlich viel Verkehr von Leuten bekommt, die sich wahrscheinlich über IE9 + wundern.
Bradley Mountford
16

Sehen Sie Ihre Antwort auf dieser Seite .

Die documentModeEigenschaft gibt den Modus zurück, den der Browser zum Rendern des aktuellen Dokuments verwendet.

IE8 kann eine Seite in verschiedenen Modi rendern, abhängig vom !DOCTYPEVorhandensein bestimmter HTML-Elemente.

Diese Eigenschaft gibt einen der folgenden Werte zurück:

5 - The page is displayed in IE5 mode
7 - The page is displayed in IE7 mode
8 - The page is displayed in IE8 mode
9 - The page is displayed in IE9 mode

Hinweis: Wenn nein !DOCTYPEangegeben ist, rendert IE8 die Seite im IE5-Modus!

Diagramm des Auswahlprozesses für den Dokumentmodus

saeed arab sheybani
quelle
Upvote für das Diagramm. Es ist sehr kompliziert, etwas anderes herauszufinden.
Jvenema
2

Browsermodus : Gibt den Benutzeragenten an, der vom Browser an den Webserver gesendet wird. Renderunterschiede können auftreten, wenn Ihr JavaScript- oder Back-End-Code basierend auf der Zeichenfolge des Benutzeragenten unterschiedlich gerendert wird. Beispielsweise wird möglicherweise JavaScript angezeigt, das dies überprüft navigator.userAgent. (Mozilla / 5.0 (kompatibel; MSIE 8.0 ...) Dieser Wert wird auch zum Verarbeiten von bedingten Kommentaren verwendet ([wenn IE 9], [wenn IE IE 8] usw.). Das Emulationstooling in IE 11 funktioniert nicht haben einen Browsermodus. Stattdessen gibt es ein Dropdown-Menü für Benutzeragenten.

Dokumentmodus : Gibt die Rendering-Engine an, mit der das Markup verarbeitet wird. Hier treten normalerweise Rendering-Probleme und Browser-Inkompatibilitäten auf. Das ursprüngliche Ziel (zum Guten oder Schlechten) war, dass Websitebesitzer über ein Meta-Tag einen Dokumentmodus für ihre Website auswählen konnten. In IE 11 sind die Emulationstools weniger verwirrend.

Testen : Wenn Sie einen alten IE8-Browser emulieren möchten, sollten Sie sowohl den Browsermodus als auch den Dokumentmodus ändern . Die Emulation ist nicht perfekt, daher ist es eine gründlichere Option, kostenlose Test-VMs von Microsoft herunterzuladen, auf denen Sie mit einer * echten "Version von IE 8, 9 usw. testen können.

Was bewirkt, dass sich diese Werte ändern?

Der Browsermodus ändert sich nicht. (Es sei denn, Sie ändern es in den Dev-Tools.) Es wird festgelegt, bevor die Anforderung an den Webserver gesendet wird.

Der Dokumentmodus kann sich basierend auf der Antwort des Webservers ändern. Sie kann über einen X-UA-kompatiblen HTTP-Antwortheader, den Dokumenttyp, Meta-Tags, Intranetsites, Markup-Probleme usw. geändert werden.

James Lawruk
quelle
0

Oben links in den IE-Entwicklungstools befindet sich eine kleine Schaltfläche -> Emulation (Registerkarte) mit der Aufschrift "Emulationseinstellungen beibehalten".

siehe das :

" Persistenz und Zurücksetzen der Einstellungen Dem Emulationstool wird ein Symbol für die Einstellungen für die persistierte Emulation hinzugefügt. Dadurch werden Ihre aktuellen Emulationseinstellungen beibehalten, bis sie speziell deaktiviert werden. So können Sie arbeiten, den Browser schließen und Ihre Emulationseinstellungen beibehalten. Rechts davon ein Symbol zum Zurücksetzen der Emulationseinstellungen, mit dem das Tool schnell auf die Standardwerte zurückgesetzt wird. "

mishal153
quelle