IE11中SVG元素的InnerSVG为空
我尝试获取属性IE11中SVG元素的InnerSVG为空,svg,internet-explorer-11,Svg,Internet Explorer 11,我尝试获取属性innerssvg值并捕获未定义的值。 请不要查看控制台内容,我使用了jQuery('main#u svg')[0]。innerSVG任何标准中都没有innerSVG属性。根据Element.innerHTML也适用于SVG或其他XML内容 2009年,出版了一本图书馆 在所有SVGElements上提供innerHTML属性 显然,在那个时候,并不是所有的浏览器都能使用。它包含自己的XML序列化程序实现。源代码中大量的TODO注释似乎表明它是一个相当不完整的代码 自从Inter
innerssvg
值并捕获未定义的值。
请不要查看控制台内容,我使用了jQuery('main#u svg')[0]。innerSVG
任何标准中都没有innerSVG属性。根据Element.innerHTML
也适用于SVG或其他XML内容
2009年,出版了一本图书馆
在所有SVGElements上提供innerHTML属性
显然,在那个时候,并不是所有的浏览器都能使用。它包含自己的XML序列化程序实现。源代码中大量的TODO
注释似乎表明它是一个相当不完整的代码
自从InternetExplorer9之后,就不再需要它了,因为它支持XMLSerializer
。虽然IE 11似乎有一个bug,并且没有返回innerHTML
的内容,但这将起作用:
function getInnerHTML (el) {
if (el.innerHTML === undefined) {
var XMLS = new XMLSerializer();
var nodes = [];
for (var i = 0; i < el.childNodes.length; i++) {
nodes.push(XMLS.serializeToString(el.childNodes[i]));
}
return nodes.join('');
} else {
return el.innerHTML;
}
}
函数getInnerHTML(el){
if(el.innerHTML==未定义){
var XMLS=新的XMLSerializer();
var节点=[];
对于(变量i=0;i
您是否已加载?为什么我需要该库?任何标准中都没有innerSVG属性。将innerHTML移植到SVG内容是该库的一项发明。所以,要么使用这个库,要么使用带有innerssvg()函数的库,要么根本不使用它。你错了,innerHTML也未定义我没说innerHTML
可以工作。事实上,编写该库是因为它在旧浏览器中不起作用。相对年轻,似乎不是针对IE11i实现的。我需要替换ie中的内部svg结构,我应该怎么做?在其他浏览器中,我使用svg.innerHTML=someXML代码>我还没有测试它,但它应该可以工作。