Warum HTML1113: Neustart des Dokumentmodus von IE9-Standards zu Quirks
Ich öffne eine Webseite im IE9 - und plötzlich wechselt der Dokumentenmodus in den Quirks-Modus. Die Seite selbst ist denkbar einfach - kein Doctype, kein Meta-Tag, nur ein Stück (Testzweck) Javascript in der XSLT, die die Seite bildet.
Sehenhttp://home.arcor.de/martin.honnen/xslt/test2012041901.xml mit dem genannten xsl am selben ort. Der Einfachheit halber habe ich den folgenden Inhalt kopiert.
Seiteninhalt ist
<code><?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="test2012041901.xsl"?> <test/> </code>
Und xsl enthält
<code><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:my="http://example.com/my" exclude-result-prefixes="ms my"> <xsl:output method="html" version="5.0"/> <ms:script language="JScript" implements-prefix="my"> <![CDATA[ function tokenize (input) { var doc = new ActiveXObject('Msxml2.DOMDocument.6.0'); var fragment = doc.createDocumentFragment(); var tokens = input.split(';'); for (var i = 0, l = tokens.length; i < l; i++) { var item = doc.createElement('item'); item.text = tokens[i]; fragment.appendChild(item); } return fragment.selectNodes('item'); } ]]> </ms:script> <xsl:template match="/"> <html> <head> <title>Example</title> </head> <body> <h1>Example</h1> <ul> <xsl:apply-templates select="my:tokenize('Kibology;for;all')"/> </ul> </body> </html> </xsl:template> <xsl:template match="item"> <li> <xsl:value-of select="."/> </li> </xsl:template> </xsl:stylesheet> </code>
Warum passiert das? Ist es eine Internet-Optionseinstellung, die dies auslöst? Wie kann ich verhindern, dass der Quirks-Modus in IE9 automatisch ausgewählt wird?
Und: früher mit der gleichen Seite ist dieser automatische Mackenmodus nicht aufgetreten - ich muss etwas getan haben, wie eine Einstellungsänderung, vielleicht sogar nur vor und zurück auf den ursprünglichen Wert, was zu diesem geänderten Verhalten führte. Aber was?
Die F12-Entwicklertools zeigen in der Konsole Folgendes:
<code>XML5001: Applying Integrated XSLT Handling. HTML1114: Codepage unicode from (UNICODE byte order mark) overrides conflicting codepage utf-8 from (10) test2012041901.xml HTML1113: Document mode restart from IE9 Standards to Quirks test2012041901.xml HTML1114: Codepage unicode from (UNICODE byte order mark) overrides conflicting codepage utf-8 from (10) test2012041901.xml </code>
Sie sind sich nicht sicher, worum es in der Meldung zur Markierung der Bytereihenfolge geht - hängt das möglicherweise mit dem Problem zusammen?
Oh- und Dev-Tools zeigen dies auch im Skriptteil:
<code>㼼浸敶獲潩㵮ㄢ〮•湥潣楤杮∽呕ⵆ∸㸿㰊砿汭猭祴敬桳敥⁴祴数∽整瑸砯汳•牨晥∽整瑳〲㈱㐰㤱砮汳㼢ਾ琼獥⽴ਾ </code>
Beachten Sie, dass all dies nur bei neu geöffneten Registerkarten geschieht, nicht bei bereits vorhandenen Registerkarten im Mackenmodus.