2013-08-22 66 views
0

我想刪除的xmlns從使用JavaScript的XHTML文檔的根html元素屬性的根元素屬性,但沒有我曾嘗試似乎工作:我想刪除的xmlns從XHTML文檔

document.documentElement.removeAttribute("xmlns") 

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

已經完全無法刪除xmlns屬性。

有什麼建議嗎?

編輯:我發現刪除正常的文檔上的xmlns工作正常,但從iframe的contentDocument中刪除它是什麼給了我麻煩。

+1

你想這樣做的任何理由? XHTML文檔需要這個屬性,除非你可以用其他命名空間複製所有的HTML功能,或者它不是真正的XHTML。 –

+0

我想刪除它,將documentElement.outerHTML寫入沒有xmlns的textarea,然後將其放回。 –

+2

但是,如果你有outerHTML,你可以從中刪除第一次出現的'xmlns =「http://www.w3.org/1999/xhtml」''屬性。 –

回答

0

iframe中的DOM文檔顯然是XMLDocument,而不是HTMLDocument。

當您刪除xmlns屬性時,您將更改DOM文檔,使其不可序列化爲XML。

「outerHTML」是一個序列化操作,因此要將DOM寫爲XML,需要先將其修復,然後將該屬性恢復爲XML。

您有兩種選擇。按照Lister先生在評論中所建議的那樣,實現您自己的以不同方式修復輸出的DOM序列化器,或者在序列化後從XML中刪除屬性。

+0

我不知道它的工作方式,謝謝。 –