IE9 で Web ページを開くと、突然ドキュメント モードが Quirks モードに切り替わります。ページ自体は非常にシンプルです。doctype も meta タグもありません。ページを形成する xslt 内の (テスト目的の) JavaScript の一部です。同じ場所で前述の xsl を使用してhttp://home.arcor.de/martin.honnen/xslt/test2012041901.xml
を
参照してください。便宜上、以下の内容をコピーしました。
ページ内容は
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test2012041901.xsl"?>
<test/>
そして xsl には
<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>
なぜこれが起こるのですか?これを引き起こすのはインターネットオプションの設定ですか?IE9 でクワーク モードが自動的に選択されるのを防ぐにはどうすればよいですか?
そして、以前の同じページでは、この自動癖モードは発生しませんでした - 設定変更のような何かを行ったに違いありません。元の値に戻ったり戻ったりしただけで、この動作が変更されました。しかし、何?
F12 開発者ツールは、コンソールに次のように表示されます。
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
バイト オーダー マーク メッセージの意味がよくわかりません。それが問題に関連している可能性がありますか?
ああ、開発ツールもスクリプト部分でこれを示しています:
㼼浸敶獲潩㵮ㄢ〮•湥潣楤杮∽呕ⵆ∸㸿㰊砿汭猭祴敬桳敥⁴祴数∽整瑸砯汳•牨晥∽整瑳〲㈱㐰㤱砮汳㼢ਾ琼獥⽴ਾ
これはすべて、新しく開いたタブでのみ発生することに注意してください。既に互換モードになっている既存のタブでは発生しません。