am 25. Februar 2009
Kürzlich ist die Beta 2-Version des Internet Explorer von Microsoft veröffentlicht worden.
Als Web-Entwickler ist dies natürlich ein wichtiges Ereignis. Schließlich möchte man rechtzeitig bevor die finale Version veröffentlicht wird prüfen, ob alle Seiten auch mit dieser Version funktionieren.
Also ab an ein virtualisiertes Windows und das brandneue Stück Software installieren.
Der ACID3-Test war jedoch ziemlich ernüchternd:
Hatte der Microsoft Internet Explorer 7 noch mit nur 11 von 100 möglichen Punkten ein Schlusslicht für die standardkonforme Interpretation von Webseiten gebildet, war also genügend Potential nach oben vorhanden. Leider hat Microsoft bezüglich des ACID-Tests nicht viel bewegt.
Mit 20 von 100 Punkten muss sich der Internet Explorer 8 Beta 2 nun zufrieden geben.
Erstaunlich, schließlich war die Standardkonformität als ein wichtiges Feature der neuen Version angekündigt:
Internet Explorer 8 wird bei seiner Veröffentlichung Webseiten mit maximaler Standards-Konformität darstellen. Dies geschieht im Rahmen von Microsofts Bemühungen, maximale Interoperabilität im Web zu fördern. Mit der Entscheidung, auf maximale Konformität mit Webstandards zu setzen, können wir Webentwickler und -designer dabei unterstützen, sich dem Ideal, Webseiten nur einmal schreiben zu müssen, zu nähern und wir geben ihnen damit mehr Zeit, innovative Inhalte zu kreieren. Diese kostbare Zeit musste in der Vergangenheit häufig dafür aufgewendet werden, Inhalte für die Darstellung in verschiedenen Browsern anzupassen. Darüber hinaus wurden in Internet Explorer 8 eine Reihe technischer Problempunkte behoben, die Entwicklern und Designern in früheren Versionen Schwierigkeiten bereitet hatten.“
ACID-Test mit verschiedenen Browsern:
Microsoft Internet Explorer 6: 11 / 100 Punkte
Microsoft Internet Explorer 7: 12 / 100 Punkte
Microsoft Internet Explorer 8: 20 / 100 Punkte
Firefox 2.0: 52 / 100 Punkte
Firefox 3.0: 71 / 100 Punkte
Safari 3.2.1 (Win&Mac): 75 / 100 Punkte
Google Chrome: 79 / 100 Punkte
Opera: 84 / 100 Punkte
Natürlich möchte man wissen, wie die eigenen Seiten sich im Internet Explorer 8 verhalten. Sie machten generell einen guten Eindruck. Optisch sahen sie aus wie in allen anderen Browsern. Auch AJAX funktionierte gleich auf Anhieb.
Aber halt..! Der Login ging nicht!
Mithilfe der IE Developer Toolbar war es jedoch möglich, den Fehler schnell zu identifizieren und zu beheben. Für jeden Web-Entwickler ist dieses Werkzeug meiner Ansicht nach ein Muss und erleichtert die Entwicklung und das Debugging – vor allem im IE 8 – erheblich.
Der Fehler ging auf eine neu eingeführte “Intelligenz” des Internet Explorer 8 zurück:
Der Internet Explorer 8 scheint an URLs, die keinen Slash am Ende haben in manchen Fällen den Slash anzufügen.
Aus http://mypage.com wird dann http://mypage.com/.
Manchmal kann dies Tatsächlich von Vorteil sein. So sendet beispielsweise ein Webserver beim Aufruf eines Verzeichnisses ohne den Slash am Ende ein Redirect auf die gleiche URL mit Slash (HTTP 301 – Moved Permanently) zurück.
Aus http://mypage.com/somedir wird also http://mypage.com/somedir/.
Wenn man exakt erkennen kann, wann es sich um ein Verzeichnis handelt, so kann man sich hier bei solchen URLs ein HTTP-Request sparen.
In unserem Fall hatte der Internet Explorer an die URL in der Form-Action einen Slash angehängt. Da es sich um ein AJAX-Formular handelt, wird die Action nicht wie vorgesehen als URL für die Seite, die bei einem Submit geladen wird, verwendet. Stattdessen notieren wir den Namen der AJAX-Methode, die aufgeufen werden soll:
<form action=“componentname://procedurename“></form>
Der Javascript-Aufruf von document.forms[0].action liefert „componentname://procedurename/“. Die Methode „procedurename/“ gibt es natürlich nicht. Und so schlägt der Login fehl.
Es ist also ratsam, die verwendeten URLs im Internet Explorer 8 zu testen. Vor allem, wenn man AJAX einsetzt und auch die Form-Actions für andere Zwecke einsetzt als ursprünglich vorgesehen.
Disclaimer: Um die Internetseite barrierefrei zu gestalten, sollte die Seite auch ohne eingeschaltetes Javascript funktionieren. Aus diesem Grund sollte man ohnehin das oben angesprochene Verfahren nicht verwenden.