eins. Übersicht über die IE8-Kompatibilitätsansicht <br />Um das Problem zu lösen, dass die neue Version des Browsers nicht mit alten Websites kompatibel ist, wurde dem IE8-Browser eine Funktion namens „Kompatibilitätsansicht“ hinzugefügt, mit der Webseiten gemäß den IE7-Codespezifikationen angezeigt werden können. Dies kann die meisten (aber nicht alle) Webseitenprobleme lösen, die durch inkonsistente Codestandards verursacht werden. Code kopieren Der Code lautet wie folgt:<head runat="server"> <meta http-equiv="X-UA-kompatibel" content="IE=7" /> <title>cest</title> </Kopf> Wenn Sie diesen Satz nicht schreiben, wird standardmäßig IE8 verwendet. Der andere Fall liegt auf der Clientseite. Wenn die Website keine Zeit hatte, die Metadaten zu ändern, und der Benutzer IE8 installiert hat und feststellt, dass die Anzeige nicht normal ist, besteht der letzte Ausweg darin, auf die Schaltfläche „Kompatibilitätsansicht“ zu klicken, was sich letztendlich im Benutzeragent widerspiegelt. Das heißt, nach dem Klicken auf die Schaltfläche „Kompatibilitätsansicht“ wird der übermittelte HTTP-Anforderungsheader als MSIE7.0 umgeschrieben, wodurch sich der Client als IE7 tarnt, um die Anforderung zu senden. wie folgt: Benutzer-Agent: Mozilla/4.0 (kompatibel; MSIE 7.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) Laut MSDN hat das Ändern von Meta (X-UA-Compatible IE=EmulateIE7) eine höhere Priorität als das Klicken auf die Kompatibilitätsansicht. Dadurch kann die Auswahl der Kompatibilitätsansicht überschrieben werden. Mit anderen Worten: Sobald die Website überarbeitet und freigegeben wurde, kann die im Browser des ursprünglichen Benutzers eingestellte Kompatibilitätsansicht ungültig gemacht werden, solange Meta eingestellt ist, wodurch eine automatische Anpassung an die neue Version des IE8-Browsers erfolgt. drei. Die IE8-Kompatibilitätsansicht (IE7-Modus) ist nicht genau dasselbe wie die eigenständige IE7 Siehe den Beitrag von Technet.Microsoft: Was ist die Kompatibilitätsansicht? http://technet.microsoft.com/zh-cn/ff966533 Die Kompatibilitätsansicht ist eine Funktion von Windows Internet Explorer 8, die es dem Browser ermöglicht, eine Webseite nahezu identisch darzustellen, wie es bei Windows Internet Explorer 7 der Fall wäre. In Internet Explorer 8 ändert die Kompatibilitätsansicht die Art und Weise, wie der Browser Code interpretiert, der in CSS, HTML und dem Document Object Model (DOM) geschrieben ist, um Internet Explorer 7 zu entsprechen. Eine Site, die ein Benutzer in der Kompatibilitätsansicht von Internet Explorer 8 anzeigt, ist fast identisch mit einer Site, die der Benutzer in Internet Explorer 7 anzeigt. Die Kompatibilitätsansicht ändert jedoch nicht, wie der Browser den gesamten Code interpretiert. Beispielsweise können die Änderungen in Internet Explorer 8 hinsichtlich der Art und Weise, wie der Browser ActiveX, den Parser, AJAX, JavaScript, Netzwerke und Sicherheit verarbeitet, immer noch Kompatibilitätsprobleme verursachen. Die Kompatibilitätsansicht ändert diese Verhaltensweisen nicht. In einer Unternehmensumgebung besteht in manchen Bereichen ein geringeres Risiko für Kompatibilitätsprobleme. Intranetzonen-Websites verwenden beispielsweise standardmäßig die Kompatibilitätsansicht. Client-Webanwendungen, die mithilfe des Webbrowser-Steuerelements oder des WebOC (Internet Explorer-Rendering-Engine) gerendert werden, weisen ebenfalls ein geringeres Risiko für Kompatibilitätsprobleme auf, da Internet Explorer 8 standardmäßig einen Kompatibilitätsmodus für das WebOC verwendet. Die Standardkonfigurationseinstellungen für die Kompatibilitätsansicht gewährleisten jedoch möglicherweise keine vollständige Kompatibilität. Um festzustellen, ob eine Website oder Webanwendung mit Internet Explorer 8 kompatibel ist, sollten Sie die Website oder Webanwendung testen. Weitere Informationen zu den Unterschieden zwischen der Kompatibilitätsansicht von Internet Explorer 8 und Internet Explorer 7 finden Sie im Blog „Sitekompatibilität und Internet Explorer 8“. Eine Liste der Dinge, die Sie beim Upgrade auf Internet Explorer 8 überprüfen sollten, finden Sie im Internet Explorer 8 Readiness Toolkit. Weitere Informationen zur Kompatibilitätsansicht finden Sie im Internet Explorer-Teamblog. Siehe den MSDN-Beitrag: 1. Unterschiede zwischen der IE8-Kompatibilitätsansicht und IE7 http://blogs.msdn.com/b/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx Auszug: Wir bemühen uns, die Kompatibilitätsansicht so nah wie möglich an IE7 anzupassen, machen aber Ausnahmen. Viele dieser Ausnahmen ermöglichen sofort verbesserte Sicherheits- und Zugänglichkeitsfunktionen, selbst für Websites, die noch nicht in den IE8-Standardmodus migriert sind. 2. Was GENAU macht die Kompatibilitätsansicht in IE8? http://webmasters.stackexchange.com/questions/2219/what-exactly-does-compatibility-view-do-in-ie8 Highlights: Die Kompatibilitätsansicht rendert die Seite, als wäre es Internet Explorer 7 (einschließlich Javascript). Es gibt ein paar Unterschiede zwischen IE8 mit CV und reinem IE7, aber im Wesentlichen ist es dasselbe. Wenn Sie wirklich im Detail wissen möchten, was vor sich geht, lesen Sie Just The Facts: Recap of Compatibility View im IE MSDN-Blog. Sie können IE8 auch mit diesem Meta-Tag zwingen, CV zu verwenden: <meta http-equiv="X-UA-kompatibel" content="IE=EmulateIE7" /> Wenn Sie Probleme haben, würde ich vorschlagen, zuerst zu prüfen, ob Ihr HTML einen gültigen Dokumenttyp enthält (der einfachste ist <!DOCTYPE html>, der den Standardmodus erzwingt). Damit werden 90 % Ihrer Probleme gelöst, insbesondere mit IE6. Die Schlussfolgerung lautet: Der Kompatibilitätsmodus von IE8 unterscheidet sich vom unabhängigen IE7, und es gibt noch einige Unterschiede. Er beinhaltet nicht einfach einen vollständigen IE7 in IE8. Vier. Details der spezifischen Unterschiede 1. Dokumentübergreifende Kommunikation Hacks, die eine domänen- und dokumentenübergreifende Kommunikation ermöglichen, wurden aus Sicherheitsgründen deaktiviert. Lösung: Verwenden Sie Cross Document Messaging (XDM), um diese Änderung zu umgehen. 2. Erweitern des Event-Objekts IE stellt neue Eigenschaften für bestimmte AJAX-Funktionen wie Cross Document Messaging (XDM) bereit, sogar in der Kompatibilitätsansicht. Das Hinzufügen benutzerdefinierter Eigenschaften zum Ereignisobjekt kann mit diesen neuen Eigenschaften, wie z. B. „Quelle“, in Konflikt geraten. event.source = myObject; // Nur lesbar im IE8 Lösung: Ändern Sie die Namen widersprüchlicher benutzerdefinierter Eigenschaften, um Kollisionen zu vermeiden. event.meineQuelle = meinObjekt; 3. Attributreihenfolge Die Reihenfolge der Attribute hat sich geändert, was sich sowohl auf die Attributsammlung als auch auf die Werte von innerHTML und outerHTML auswirkt. Seiten, die von einer bestimmten Attributreihenfolge abhängen, können beschädigt werden. attr = elm.attributes[1]; // Kann in IE8 abweichen Lösung: Referenzieren Sie Attribute nach Namen und nicht nach ihrer Position innerhalb der Attributsammlung. attr = elm.attributes["id"]; 4. Festlegen nicht unterstützter CSS-Werte Das Zuweisen von CSS-Werten, die in IE7 nicht unterstützt wurden, im IE8-Standardmodus jedoch unterstützt werden, erzeugt in der IE8-Kompatibilitätsansicht keine Ausnahmen. Einige Sites verwenden diese Ausnahmen, um zu bestimmen, ob ein bestimmter Wert für eine CSS-Eigenschaft unterstützt wird oder nicht. Code kopieren Der Code lautet wie folgt:Versuchen { elm.style.display = "Tabellenzelle"; } Fang(e) { // Dies wird im IE7 ausgeführt, // aber nicht IE8, unabhängig vom Modus } Lösung: Ohne Versionserkennung ist dieses Problem schwer zu umgehen. Wenn dieses Verhalten für eine Seite wichtig ist, ist es möglicherweise am besten, die Seite so zu aktualisieren, dass sie im IE8-Standardmodus ausgeführt wird. |
<<: So sichern Sie die MySQL-Datenbank regelmäßig automatisch
>>: Implementierung zum Erstellen benutzerdefinierter Images mit Dockerfile
Einführung: Lambda Probe (früher bekannt als Tomc...
Öffnen Sie das Verbindungstool. Ich verwende Moba...
Vorwort Für die Berechtigungen von Dateien oder V...
Ich arbeite derzeit an elektronischen Archiven un...
Wenn Sie mit der Arbeit an einem Projekt beginnen...
Wenn wir eine neue CSS-Funktion verwenden möchten...
Quelle des Problems Wie wir alle wissen, erzeugt ...
Dieser Artikel beschreibt die MySQL-Integritätsbe...
MySQL ist ein relationales Datenbankverwaltungssy...
Voraussetzung: Celery wird in Django eingeführt. ...
Ich weiß nicht, wann es angefangen hat, aber jede...
Die Standardanordnung von Text in HTML ist horizo...
Vorwort Bei der Entwicklung eines Gateway-Projekt...
Ein WeakMap-Objekt ist eine Sammlung von Schlüsse...
Wenn die Auflösung der Anmeldeoberfläche besonder...