Letzte Woche hat Microsoft offiziell die erste Vorschau von Internet Explorer 11 mit Windows 8.1 gestartet. Auf diese Weise ist es Zeit, sich auf allen Gerüchten über diese umstrittene Version des Webbrowsers auszuruhen. Wir kennen jetzt einige wichtige Details zu Internet Explorer 11, einschließlich der Unterstützung für WebGL, Prefetch (Übersetzer Anmerkung: Vorladung von Dateien usw., und ich weiß nicht, ob die Übersetzung korrekt ist), Prerender (Vorrepräsentation), Flexbox, Mutationsbeobachter und andere Webstandards. Vielleicht interessanter in IE11 ist, ob es sich um IE handelt.
Microsoft hat zum ersten Mal seit langer Zeit einige Funktionen aus dem Internet Explorer -Browser entfernt. Die Nutzer-Agent-Zeichenfolge hat sich ebenfalls geändert. Es scheint, dass Microsoft seinen eigenen Weg aufgegeben hat, so dass vorhandene IE-Erkennungscode-Filialen im Internet Explorer 11 Browser, sei es in JavaScript oder auf dem Server, false zurückgeführt werden.
Änderungen an Benutzer-Agent
Im Vergleich zu früheren Versionen ist die Benutzer-Agent-String von Internet Explorer 11 kürzer und es gibt einige interessante Änderungen:
Die Codekopie lautet wie folgt:
Mozilla/5.0 (Windows NT 6.3; Trident/7,0; RV 11,0) wie Gecko
Für Benutzer-Agent-Zeichenfolgen für Internet Explorer 10 unter Windows 7
Die Codekopie lautet wie folgt:
Mozilla/5.0 (kompatibel; MSIE 10.0; Windows NT 6.1; Wow64; Trident/6.0)
Der offensichtlichste Unterschied besteht darin, dass das "MSIE" -Tag der Benutzer-Agent-Zeichenfolge im Internet Explorer-Browser entfernt wurde. Überzeugend ist auch die Zugabe von "Like Gecko" zum Schwanz des Benutzers. Dies zeigt, dass Internet Explorer eher als Gecko -Browser als als Internet -Explorer selbst anerkannt wird. Safari ist der erste Browser, der "Like Gecko" hinzufügt, so dass jeder das "Gecko" -Scharakter in der Benutzer-Agent-Zeichenfolge schnüffeln kann, damit der Browser passieren kann.
Jetzt funktioniert jeder Schnüffelcode, der nach "MSIE" sucht, unter der neuen Nutzer-Agent-Zeichenfolge nicht. Sie können weiterhin nach dem "Trident" -Scharakter suchen, um festzustellen, dass es sich um den IE -Browser handelt (das "Trident" -Logo wurde mit Internet Explorer eingeführt). Die echte Version von Internet Explorer wird durch "RV" identifiziert.
Darüber hinaus haben sich auch die Informationen des Navigator -Objekts geändert, was den verwendeten Browser weiter verbirgt.
Navigator.Appname ist auf "Netscape" eingestellt.
Navigator.Product ist auf "Gecko" eingestellt.
Dies mag wie ein Versuch erscheinen, den Entwickler hintereinander auszutricksen, aber diese sind tatsächlich HTML5 angegeben. Die Eigenschaft navigator.product muss "Gecko" sein, und der Navigator.Appname sollte auch "Netscape" oder genauer sein. Aber Internet Explorer 11 nicht folgen diesem seltsamen Vorschlag.
Nebenwirkungen, die durch Änderungen der Navigatorinformationen verursacht werden, ist die Browser-Erkennung basierend auf der verwendeten JavaScript-Logik möglicherweise nicht verfügbar, was dazu führt, dass Internet Explorer 11 als auf Gecko-basierter Browser erkannt wird.
Dokument.all und seine Freunde
Seit IE4 hat Dokument. Alle haben im IE -Browser alles getan. Das zuvor implementierte Dokument.GetElementById () ähnelt dem Dokument. Obwohl document.all die Unterstützung für DOM von IE5 bis IE10 beibehält. In 11 wurde jedoch das von dieser Zeit übrig gebliebene Produkt für False eingestellt, was bedeutet, dass ein auf Dokument basierendes Code -Zweigurteil in IE11 fehlschlägt, auch wenn der Code tatsächlich das Dokument verwendet. Alle funktionieren ordnungsgemäß.
Ein weiteres Vermächtnis ist der Anhang (), der die Ereignisfunktion hinzufügt, ähnlich der Methode detaachEvent (). Diese Methode wurde von IE11 entfernt. Diese Methoden werden entfernt, um einige logische Urteile zu vermeiden, wie z. B.:
Die Codekopie lautet wie folgt:
Funktion addEvent (Element, Typ, Handler) {
if (element.attachEvent) {
Element.attacheAvent ("on" + Typ, Handler);
} else if (element.adDeVentListener) {
Element.AdDeVentListener (Typ, Handler, Falsch);
}
}
Natürlich empfehlen wir, dass die Version, mit der Sie am besten getestet werden, immer stabil ist und den Standards entspricht. Auf einer gewissen Ebene verursacht das Entfernen der Anhangsmethode keine Beschwerden. Das Internet ist jedoch voller Feature -Erkennungs -Logikcodes für das Internet. Das Entfernen der Anhang-Methode stellt sicher, dass jeder Code, der oben geschrieben wurde, die Standardversion anstelle von IE-spezifischen Methoden verwendet.
Einige andere entfernte Funktionen:
window.execscript () - dh Version der Eval () -Methode
window.doscroll () - dh Fenster -Scrolling -Methode
script.onreadyStatechange - Statusänderungen des Ladeskripts in IE
Skript.ReadyState - Der Zustand des Skripts geladen in IE
Dokument.Selection-Der aktuell ausgewählte Text in IE
document.createstylesheet-create stylesheet document in ie
Style.Stylesheet-Ein Style-Objekt im IE-Browser, der auf ein Stylesheet verweist
Alle diese IE -Browser -Methoden werden durch Standardfunktionen ersetzt. Nach dem Entfernen dieser Merkmale und Methoden kann der Cross-Browser-Code basierend auf Standardfunktionsfunktionserkennung immer noch normal funktionieren, ohne sich zu ändern.
abschließend
IE11 ist wahrscheinlich der beste IE -Browser für lange Zeit. Microsoft bereitet sich endlich darauf vor, Fehler zu beseitigen, die in der Vergangenheit gemacht wurden, und ist bereit, mit Browsern basierend auf den aktuellen Standards zu beginnen. Das Löschen alter Funktionen und Änderungen von Benutzeragenten, die bei IE -Browsern nicht erkannt werden, ist eine einzigartige Praxis, die sicherstellt, dass alle Websites weiterhin funktionieren. Wenn die Webanwendung die Funktionserkennung anstelle des Browser -Schnüffelns verwendet, sollte der Code in IE11 ausgeführt werden. Für Anwendungen, die das Sniffing von User-Agent verwenden, können Benutzer weiterhin eine Website mit guter Funktionalität sehen, da IE11 eine hervorragende Unterstützung für Standard bietet.
Eine Zukunft ohne IE -Filialen Code kommt zusammen, freuen wir uns gemeinsam.
(Aktualisiert am 2. Juli 2013), das in der Revision erwähnte Dokument wurde nicht tatsächlich gelöscht, sondern in Falsey geändert
Ich habe den Artikel schon lange nicht mehr übersetzt. Diesmal habe ich den Blog von Nicholas C. Zakas übersetzt. Der Originaltext ist hier: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/