gpt4 book ai didi

javascript - IE 和 document.implementation.createDocument() - 哪些参数影响正确的 html nodename 大小写?

转载 作者:行者123 更新时间:2023-11-30 05:50:30 24 4
gpt4 key购买 nike

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

哪种参数的神奇组合会影响具有正确大小写规则的文档?

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

最佳答案

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

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

(几乎与 DOM4 spec 保持一致)。

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

关于javascript - IE 和 document.implementation.createDocument() - 哪些参数影响正确的 html nodename 大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com