1

我想使用 JavaScript 从 XHTML 文档的根 html 元素中删除 xmlns 属性,但我尝试过的任何方法似乎都不起作用:

document.documentElement.removeAttribute("xmlns")

document.documentElement.removeAttributeNode(document.documentElement.getAttributeNode("xmlns"))

完全无法删除 xmlns 属性。

有什么建议么?

编辑:我发现删除普通文档上的 xmlns 可以正常工作,但是从 iframe 的 contentDocument 中删除它是给我带来麻烦的原因。

4

1 回答 1

0

iframe 中的 DOM 文档显然是 XMLDocument,而不是 HTMLDocument。

当您删除 xmlns 属性时,您会更改 DOM 文档,使其无法作为 XML 序列化。

“outerHTML”是一个序列化操作,所以要将DOM写成XML,需要先修复,将属性恢复到XML。

你有两个选择。实现您自己的 DOM 序列化程序,以不同的方式修复输出,或在序列化后从 XML 中删除属性,如 Lister 先生在评论中建议的那样。

于 2013-08-22T11:50:11.157 回答