我打开IE9网页 - 一下子文档模式切换到怪癖模式。 页面本身是死的简单 - 没有DOCTYPE,没有meta标签,只是一块XSLT形成内页(测试目的)的JavaScript。
见http://home.arcor.de/martin.honnen/xslt/test2012041901.xml使用在相同的位置提到的XSL。 为了方便我复制下面的内容。
网页内容是
<?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>
为什么会出现这种情况? 它是一个Internet选项设置触发此? 如何防止怪癖模式正在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
不知道字节顺序标记的消息是怎么一回事 - 也许这就是涉及到这个问题?
哦,开发工具也是在脚本部分显示此:
㼼浸敶獲潩㵮ㄢ〮•湥潣楤杮∽呕ⵆ∸㸿㰊砿汭猭祴敬桳敥⁴祴数∽整瑸砯汳•牨晥∽整瑳〲㈱㐰㤱砮汳㼢ਾ琼獥⽴ਾ
需要注意的是这一切都只能用新打开的标签发生,而不是现有的怪癖模式了。