簡體   English   中英

Chrome createAttribute格式錯誤的前綴

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM