diff --git a/can-view-target.js b/can-view-target.js index 0407162..91ff4d9 100644 --- a/can-view-target.js +++ b/can-view-target.js @@ -162,7 +162,9 @@ function processNode(node, paths, location, document){ getCallback().callbacks.push({ callback: value }); - } else { + } else if (value !== null && typeof value === "object" && value.namespaceURI) { + el.setAttributeNS(value.namespaceURI,attrName,value.value); + } else { domMutate.setAttribute.call(el, attrName, value); } } diff --git a/test/test.js b/test/test.js index bd9bb34..925e21b 100644 --- a/test/test.js +++ b/test/test.js @@ -185,3 +185,17 @@ test('cloneNode keeps non-default element namespace', function() { equal(clone.firstChild.namespaceURI, 'http://www.w3.org/2000/svg', 'cloneNode should keep non-default element namespace'); }); + +QUnit.test("SVG namespaceURI", function() { + var data = target([{ + tag: "svg", + attrs: { + "xmlns" : { + value: "http://www.w3.org/2000/svg", + namespaceURI: "http://www.w3.org/2000/xmlns/" + } + } + }]); + var frag = data.hydrate(); + QUnit.equal(frag.firstChild.getAttributeNode("xmlns").namespaceURI, 'http://www.w3.org/2000/xmlns/'); +})