我想使用JavaScript从XHTML文档的根html元素中删除xmlns属性,但我尝试的任何内容似乎都不起作用:
document.documentElement.removeAttribute("xmlns")
和
document.documentElement.removeAttributeNode(document.documentElement.getAttributeNode("xmlns"))
完全没有删除xmlns属性。
有什么建议吗?
编辑:我发现删除普通文档上的xmlns工作正常,但是从iframe的contentDocument中删除它会给我带来麻烦。
答案 0 :(得分:0)
iframe中的DOM文档显然是XMLDocument,而不是HTMLDocument。
删除xmlns属性时,更改DOM文档,使其不可序列化为XML。
“outerHTML”是一个序列化操作,因此要将DOM作为XML编写,需要先修复它,然后将属性恢复为XML。
您有两种选择。实现您自己的DOM序列化程序,以不同的方式修复输出,或者在序列化后从XML中删除属性,正如Lister先生在评论中所建议的那样。