这种情况发生在Firefox中,但不会发生在谷歌浏览器中。
我在svg-web画布中创建了一个SVG'Image'标签,如下所示:
im = document.createElementNS(svgns, 'image');
im.setAttributeNS(xlinkns, 'href', g.href);
canvas.appendChild(im);
如果我查看firebug或chrome的调试器,svg就会显示出这样的自闭:
<image xlink:href="..." />
但是如果我然后打印svg元素的innerHTML
的父级,它会返回:
<svg><image xlink:href="..."></svg>
请注意,图片标记现在是未关闭的,这会导致错误。我发现了一个错误,或者我做错了什么?并且,可能更难,是否有一种方法可以在JavaScript中检查和修复标记?
答案 0 :(得分:0)
HTML不需要空标记来结束结束。即使文档是在XHTML中,我也不确定它是否会从innerHTML属性返回有效的XML。
编辑:Mozilla Developer Center documentation for innerHTML表示您不应该依赖于您从innerHTML中获取的内容,并建议将某些库作为专门用于XML的替换。