3

Chrome 和 Firefox 类似 document.implementation.createDocument()。IE9 没有,它要求提供 namespaceURI 和文档元素名称。这意味着调用类似 document.implementation.createDocument(' http://www.w3.org/1999/xhtml ','html',null) 之类的东西,但这具有生成不使用官方 HTML 元素 nodeName 案例。它应该是全大写的,IE9 中的普通 document.createElement("a").nodeName 将返回“A”。使用 document.impl... 版本, [...].createElement("a").nodeName 返回“a”。

哪种神奇的论点组合会影响具有正确案例规则的文档?

(问题的原因:一百万个测试 DOM 片段的 QUnit 测试需要大写的节点名,并且会在这个非窗口元素工厂的整个地方抛出错误。这些测试都可以手动修复以忽略大小写,但如果有办法为了使 IE 正常运行,而不是假装小写元素名称是可以的——根据规范,它们不是——我会在手动修复之前接受它)。

4

1 回答 1

1

您将需要改用 createHTMLDocument 方法,如下所示:

document.implementation.createHTMLDocument("").createElement("a").nodeName

(几乎符合DOM4 规范)。

根据该规范,createDocument 创建一个 XML 文档,该文档不应将元素名称强制为大写。

于 2013-03-02T17:46:40.430 回答