javascript - Correct way to get value of namespace declaration attribute -
consider 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...; // correct here? var link = bar.getattributens(xlnk,'href');
clearly can make work xlnk = "http://www.w3.org/1999/xlink"
; question, however, correct way dynamically fetch xmlns:xlink
attribute on svg
element?
the following code happens work in safari/chrome/ff, valid?
var xlnk = foo.getattribute('xmlns:xlink');
the following code returns empty string in browsers:
var xlnk = foo.getattributens( "http://www.w3.org/2000/svg", "xlink" );
the getattributens()
specification documents second parameter as:
"the local name of attribute retrieve."
per namespaces in xml, 3rd edition xmlns
prefix reserved , used part of prefixedattname
define nsattname
.
since nsattname
not have "local part"—and qname
does—it seems xmlns:xlink
not considered namespace+local name, rather attribute name itself. consistent experimental results across normally-standards-compliant browsers, convinced following code valid , correct:
var xlnk = foo.getattribute('xmlns:xlink');
Comments
Post a Comment