1

当我尝试克隆 Xml 文档对象 Chrome 时,IE 行为正常,但 Safari 浏览器版本 5.1.7 返回 null,

以下是我的示例代码 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

在此先感谢,普拉文库马尔

4

1 回答 1

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。

但它似乎很少消耗内存,无论如何有人提供更好的解决方案。

于 2015-12-26T09:22:47.837 回答