外部svg导入html,javascript – 导入外部SVG(使用WebKit)

通过XHR获取SVG文档后,xhr.responseXML属性中将有一个单独的XML文档.由于您无法合法地将节点从一个文档移动到另一个文档,因此您需要将所需的部分从一个文档导入到目标文档中,然后才能将其用作该文档的一部分.

var clone = document.importNode(nodeFromAnotherDoc,true);

// Now you can insert "clone" into your document

但是,this does not work for IE9.要解决该错误,您可以使用此函数以递归方式重新创建所选文档中的节点层次结构:

function cloneToDoc(node,doc){

if (!doc) doc=document;

var clone = doc.createElementNS(node.namespaceURI,node.nodeName);

for (var i=0,len=node.attributes.length;i

var a = node.attributes[i];

clone.setAttributeNS(a.namespaceURI,a.nodeName,a.nodeValue);

}

for (var i=0,len=node.childNodes.length;i

var c = node.childNodes[i];

clone.insertBefore(

c.nodeType==1 ? cloneToDoc(c,doc) : doc.createTextNode(c.nodeValue),

null

);

}

return clone;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值