![](/img/trans.png)
[英]JavaScript - Test if getAttributeNode, setAttributeNode and createAttribute are supported by browser
[英]Chrome createAttribute malforms prefix
我有一個簡單的javascript片段,它向xsl文檔添加了exslt命名空間。 但是,Chrome和Firefox處理此問題的方式有所不同。 Firefox將使用完整的名稱空間將名稱空間正確添加到根目錄
xmlns:exsl="http://exslt.org/common"
Chrome只是塞進去了
exsl="http://exslt.org/common"
你看到區別了嗎? “ xmlns
”在后者中消失了,Chrome本身認為xslt格式錯誤:在轉換時它返回null! 如果您正確地添加了前綴xmlns:exsl
,那么Chrome就會喜歡它。 嘗試使用以下小提琴和Firefox,然后再使用Chrome,以查看區別。 這是簡單的代碼
var styleString = '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><div>hi</div></xsl:template></xsl:stylesheet>';
var xslDoc = (new DOMParser()).parseFromString(styleString, "text/xml");
var docRoot = xslDoc.documentElement;
a = document.createAttribute("xmlns:exsl");
a.nodeValue = "http://exslt.org/common";
docRoot.setAttributeNode(a);
var xmls1 = new XMLSerializer();
var outputXHtmlString = xmls1.serializeToString(xslDoc);
document.getElementById("content").innerText = outputXHtmlString;
用這個
var styleString = '<xsl:stylesheet version="1.0" xmlns:xsl="w3.org/1999/XSL/Transform" xmlns:exsl="exslt.org/common"><xsl:template match="/"><div>hi</div></xsl:template></xsl:stylesheet>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.