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 ドキュメントは、HTMLDocument ではなく、明らかに XMLDocument です。

xmlns 属性を削除すると、XML としてシリアル化できないように DOM ドキュメントが変更されます。

「outerHTML」はシリアル化操作であるため、DOM を XML として書き出すには、最初に修復する必要があります。これにより、属性が XML に復元されます。

2 つのオプションがあります。別の方法で出力を修復する DOM の独自のシリアライザーを実装するか、リスター氏がコメントで示唆しているように、シリアライズ後に XML から属性を削除します。

于 2013-08-22T11:50:11.157 に答える