当我尝试克隆Xml文档对象Chrome时,IE表现正常但Safari浏览器版本5.1.7返回null,
Follwing是我的示例代码 xml字符串
var xmlStr="<tr> <td class="dsd"> </td><td class='name'></td></tr>"
var doc=getXmlDoc(xmlStr) (i.e getXmlDoc is my custom function which returns string to doc using DOM Parser)
funtion getXmlDoc(str)
{
parser = new DOMParser();
xmlDoc = parser.parseFromString(str,"text/xml");
return xmlDoc
}
doc-Document(converted Document)
d.cloneNode(true)-Returns null
When i try to clone Entire Document,unable to clone
But d.documentElement.cloneNode(true) works
但是当我尝试克隆根节点时,我可以。
仅在Safari浏览器5.1.7中测试此问题。
I am working on ExtJs Framework, where EXt.clone() also returns null
提前致谢, Praveenkumar
答案 0 :(得分:0)
由于Safari不会克隆整个文档,但它仍然克隆(支持)documentElement。例如
var xmlStr="<tr> <td class="dsd"> </td><td class='name'></td></tr>";
//convert the above string into document
//funtion getXmlDoc(str)
{
parser = new DOMParser();
xmlDoc = parser.parseFromString(str,"text/xml");
return xmlDoc
}
var newDoc=getXmlDoc(str);
//after Converting str to newDoc
var copy=newDoc.cloneNode(true);//will return error
//Let see How to Done
var copy=getXmlDoc(getXmlStr(newDoc.documentElement.cloneNode(true)));
解释 CloneNode方法克隆了一个给定的元素,但是我们需要克隆一个文件,所以首先我们克隆元素并将它们转换成字符串,然后将它们转换为Doc。
但它似乎很少消耗内存, 无论如何,任何人都提供更好的解决方案。