将SVG字符串附加到dom

时间:2010-03-20 12:19:24

标签: javascript xml svg

我正在尝试将一串svg元素追加到dom中。这是我的设置。

var oFragment = '';
for (var i = 0; i < 10; i++) {
oFragment += '<g><path id="note-'+i+'" d="M 6,3 84,6  c 0,0 -6,76 14,91  L 58,97 19,89  c 0,0 -24,-5 -13,-86 z" style="fill:#ffc835;" /></g> ';
}

这是我尝试过的。它给出以下错误:“未定义parseXML”

var oSVG = document.getElementById("svg-wall").getSVGDocument();
var oNotes = oSVG.getElementById('notes');
oNotes.appendChild(parseXML(oFragment, document));

所以我的问题是:我做错了什么,这是将svg字符串附加到dom的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

parseXMLSVG Tiny 1.2的一部分,但AFAIK目前在任何Web浏览器中都不支持SVGGlobal接口方法。但是完全可以使用其他技术来实现它。如果你查看我的博客文章底部SVG at the movies take 2,你会发现一个简单的wrapper script that implements parseXML(在opera,firefox和webkit中应该可以正常工作)。有关使用此脚本的示例,请查看该博文中的演示源。

答案 1 :(得分:0)

我认为没有一个名为parseXML的免费功能(您是否缺少某些功能?)。

既然你正在处理DOM,那么不要直接用DOM插入元素吗?

for (var i = 0; i < 10; ++ i) {
   var path = document.createElement("path");
   path.setAttribute("id", "note-" + i);
   ...
   var g = document.createElement("g");
   g.appendChild(path);
   oNotes.appendChild(g);
}