我正在开发一个JavaScript类来显示所有SVG对象,但是当我创建元素" image"时,浏览器不会显示它。虽然如果我复制生成的代码并将其放在另一个文档中,则会显示图像。
当我使用Firebug的检查器搜索图像时,会出现该对象但不显示图像。
我使用appendChild()
,setAttribute()
和setAttributeNS()
这是生成的代码:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" width="100%" >
<image width="50" height="50" xlink:href="logo.png" y="20" x="20" id="d"></image>
</svg>
我做错了什么?
答案 0 :(得分:1)
问题是命名空间。这是动态创建图像的正确形式:
image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'flower.png');
更多信息可以在MDN's 'Namespaces Crash Course'找到。