我正在尝试将一串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的最佳方法吗?
答案 0 :(得分:1)
parseXML是SVG 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);
}