TL; DR摘要:對於SVG元素,使用setAttribute
而不是setAttributeNS
是否合適?XHTML5中的SVG:使用適當的名稱空間設置屬性
詳細:
考慮嵌入在XHTML5此SVG圖像使用JavaScript來動態創建和添加元素附圖:http://phrogz.net/svg/svg_in_xhtml5.xhtml
由JavaScript創建並附加到<svg>
元件的SVG元素必須創建使用...
var el = document.createElementNS("http://www.w3.org/2000/svg",'foo');
...而不是...
var el = document.createElement('foo');
...爲了將它們視爲SVG元素並在瀏覽器中呈現。這是合理的和可以理解的。然而,根據this page我也應該設置使用這些要素的屬性...
el.setAttributeNS(null, 'foo', 'bar');
...而不是代碼我使用的是目前:
el.setAttribute('foo', 'bar');
我在做什麼適用於Chrome,Safari和Firefox。我有什麼法定代碼 - 它相當於推薦 - 或只是發生工作,由於瀏覽器的寬容性質,我必須改爲使用setAttributeNS
有效嗎?