Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Internet Explorer 9中的类型不匹配错误:添加<;标题>;内联SVG_Javascript_Internet Explorer_Svg - Fatal编程技术网

Javascript Internet Explorer 9中的类型不匹配错误:添加<;标题>;内联SVG

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];

我试图使用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];
    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属性并将其放在标题中。