考虑这个SVG/XML和JavaScript:正确的方式来获得命名空间声明属性的值
<svg id="foo" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<use id="bar" xlink:href="#whee" />
</svg>
...
var foo = document.getElementById('foo');
var bar = document.getElementById('bar');
var xlnk = foo...; // What is correct here?
var link = bar.getAttributeNS(xlnk,'href');
显然,我可以使这项工作与xlnk = "http://www.w3.org/1999/xlink"
;但是,我的问题是动态获取svg
元素上的xmlns:xlink
属性的正确方法是什么?
下面的代码碰巧在Safari/Chrome/FF中工作,但它真的有效吗?
var xlnk = foo.getAttribute('xmlns:xlink');
以下代码返回在这些浏览器为空字符串:
var xlnk = foo.getAttributeNS("http://www.w3.org/2000/svg", "xlink");