这种情况发生在 Firefox 中,但不会发生在 Google Chrome 中。
我在 svg-web Canvas 中创建了一个 SVG“图像”标签,如下所示:
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 有没有办法检查和修复标签?
最佳答案
HTML 不需要空标签来结束。即使文档采用 XHTML,我也不确定它是否会从 innerHTML 属性返回有效的 XML。
编辑:Mozilla Developer Center documentation for innerHTML说您不应该依赖从innerHTML 中返回的内容,并建议使用一些库作为专门用于XML 的替代品。
关于javascript - document.createElement() 创建未封闭的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977094/