如何获取HTML文档的动态修改SVG元素的字符串?

sev*_*niw 4 javascript svg

我编写了动态编辑svg元素的javascript.我想获取已编辑的svg元素的新字符串,但目前我的代码失败了.我在这里找到以下代码来获取HTML文档的字符串形式.

var txt = document.documentElement.innerHTML;
Run Code Online (Sandbox Code Playgroud)

我只想要innerHTMLSVG元素.我尝试了以下代码,但收到一条错误消息"undefined".

var svgnode=document.getElementById("svgnode1");
alert(svgnode.innerHTML);
Run Code Online (Sandbox Code Playgroud)

我怎么做.Google Chrome上出现此错误,但我想要一个适用于任何浏览器的解决方案.

Mik*_*uel 10

innerHTML 是为HTML文档定义的,但不是为其他类型的XML DOM定义的.

有一些机制计划innerHTML用于SVG的类似设施. http://www.w3.org/Graphics/SVG/WG/wiki/SVG_2_DOM#innerHTML_type_facilities:

innerHTML类型的设施

如果XML具有innerHTML类似功能,那将是一件好事.在ECMAScript字符串中编写标记可能有点痛苦,但它也可以简化很多事情,并且对于有用的场景类型可能更好,这可能意味着类似E4X的功能.

调用此工具innerHTML可能会使标记应该被解析为在XHTML命名空间中,因此可能innerMarkupinsertCode将是一个更好的名称,或者,对于textContent可能的对称性markupContent.

如果您需要的是将SVG或任何其他XML DOM转换为XML字符串的方法,请参阅https://developer.mozilla.org/en/Parsing_and_serializing_XML

或者参见/sf/answers/344182681/获取等效的IE.