Javascript Internet Explorer 9中的类型不匹配错误:添加<;标题>;内联SVG
我试图使用Javascript在内联SVG中动态添加一个元素。我有一个脚本,可以在所有主要浏览器中运行,但IE中出现Javascript Internet Explorer 9中的类型不匹配错误:添加<;标题>;内联SVG,javascript,internet-explorer,svg,Javascript,Internet Explorer,Svg,我试图使用Javascript在内联SVG中动态添加一个元素。我有一个脚本,可以在所有主要浏览器中运行,但IE中出现类型不匹配的错误除外。代码如下所示: var svg = new XMLHttpRequest(); svg.open("GET", "image.svg", false); svg.send(); var svgResult = svg.responseXML; var theSVG = svgResult.getElementsByTagName('svg')[0];
类型不匹配的错误除外。代码如下所示:
var svg = new XMLHttpRequest();
svg.open("GET", "image.svg", false);
svg.send();
var svgResult = svg.responseXML;
var theSVG = svgResult.getElementsByTagName('svg')[0];
titleElement = document.createElementNS('http://www.w3.org/2000/svg', 'title'),
titleContent = document.createTextNode("The <title> text");
titleElement.appendChild(titleContent);
theSVG.insertBefore(titleElement, theSVG.firstChild);
var svg=new-XMLHttpRequest();
open(“GET”、“image.svg”、false);
svg.send();
var svgResult=svg.responseXML;
var theSVG=svgResult.getElementsByTagName('svg')[0];
titleElement=document.createElements('http://www.w3.org/2000/svg","标题",,
titleContent=document.createTextNode(“文本”);
titleElement.appendChild(titleContent);
插入之前的序列号(标题元素,序列号第一个孩子);
我希望这能提供一些上下文,这个片段是一个更大的脚本的一部分,该脚本获取图像的源代码并将SVG代码输出到页面上。由于脚本工作正常,除了IE之外,在任何浏览器中都不会返回任何错误,所以我有点不知所措
感谢您的帮助
注意:我应该补充一点,IE告诉我最后一行(insertBefore
)是不匹配错误所在的行
您的代码在IE10中似乎运行良好+
IE9(或者兼容模式?)的问题在于,当它使用ajax接收SVG时,它使用“旧”文档模式解析SVG。你可以试着这样解决它。也许有更好的方法,不确定
var svg=new-XMLHttpRequest();
open(“GET”、“image.svg”、false);
svg.send();
//svgResult=svg.responseXML;这只是我的例子,这类文本可能会出现在那里。实际上,我在脚本的更高层有一个变量,它获取imagesalt属性并将其放在标题中。