Почему HTML1113: режим документа перезапускается из стандартов IE9 в причуды
Я открываю веб-страницу в IE9 - и внезапно режим документа переключается в режим Quirks. Сама страница очень проста - без doctype, без мета-тэга, просто кусочек (тестового) javascript внутри xslt, формирующего страницу.
Увидетьhttp://home.arcor.de/martin.honnen/xslt/test2012041901.xml используя упомянутый xsl в том же месте. Для удобства я скопировал содержимое ниже.
Содержание страницы
<code><?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="test2012041901.xsl"?> <test/> </code>
И XSL содержит
<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>
Почему это происходит? Это запускает настройку параметров интернета? Как я могу предотвратить автоматический выбор режима причуда в IE9?
И еще: раньше на той же странице этот автоматический режим причуд не появлялся - я должен был что-то сделать, например, изменение настроек, может быть, даже просто вперед и снова вернуться к исходному значению, что привело к этому измененному поведению. Но что?
Инструменты разработчика F12 показывают следующее в консоли:
<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>
Не уверен, что означает сообщение с меткой порядка байтов - может быть, это связано с проблемой?
О, и инструменты разработчика также показывают это в части скрипта:
<code>㼼浸敶獲潩㵮ㄢ〮•湥潣楤杮∽呕ⵆ∸㸿㰊砿汭猭祴敬桳敥⁴祴数∽整瑸砯汳•牨晥∽整瑳〲㈱㐰㤱砮汳㼢ਾ琼獥⽴ਾ </code>
Обратите внимание, что все это происходит только с недавно открытыми вкладками, а не с уже существующими в режиме причуд.