Javascript document.createElement()是否创建未关闭的标记?

Javascript document.createElement()是否创建未关闭的标记?,javascript,firefox,dom,svg,Javascript,Firefox,Dom,Svg,这在Firefox中发生,但在Google Chrome中没有 我在SVG web画布中创建一个SVG“Image”标记,如下所示: im = document.createElementNS(svgns, 'image'); im.setAttributeNS(xlinkns, 'href', g.href); canvas.appendChild(im); <image xlink:href="..." /> 如果我在firebug或chrome的调试器中查看,svg会自动关

这在Firefox中发生,但在Google Chrome中没有

我在SVG web画布中创建一个SVG“Image”标记,如下所示:

im = document.createElementNS(svgns, 'image');
im.setAttributeNS(xlinkns, 'href', g.href);
canvas.appendChild(im);
<image xlink:href="..." />
如果我在firebug或chrome的调试器中查看,svg会自动关闭,如下所示:

im = document.createElementNS(svgns, 'image');
im.setAttributeNS(xlinkns, 'href', g.href);
canvas.appendChild(im);
<image xlink:href="..." />

请注意,图像标记现在未关闭,这会导致错误。我是否发现了一个bug,或者我做错了什么?而且,可能更难的是,JavaScript中是否有方法检查和修复标记?

HTML不需要空标记来结束。即使文档是XHTML格式的,我也不确定它是否会从innerHTML属性返回有效的XML


编辑:表示您不应该依赖于从innerHTML中获得的内容,并建议使用一些库作为专门用于XML的替代品。

我知道。尽管如此,它还是以第一种方式显示在HTML查看器中,默认实现不应该是“正确”的吗?如果这是有意的,这难道不意味着javascript DOM方法不适用于XHTML吗?工具显示它的方式并不意味着数据将如何从innerHTML中出来。Firebug是一个与Firefox完全不同的项目。你到底想完成什么?您想确认这是否是一个bug吗?是否要对innerHTML之外的数据执行某些操作?这并不是因为innerHTML生成了一个未关闭的标记,而是HTML不仅不需要/>它不允许它,所以Firefox从其innerHTML属性提供了有效的HTML。您的编辑让我找到了innerDom包,我想这就是我想要的。谢谢