After fetching an SVG document using XHR I need to append a portion of it from the responseXML
document into the current document. Using this code works on Safari/Chrome/FireFox, but does not work on IE9:
var xhr = new XMLHttpRequest;
xhr.open('get','stirling4.svg',true);
xhr.onreadystatechange = function(){
if (xhr.readyState != 4) return;
var g = xhr.responseXML.getElementsByTagName('g')[2];
var p = document.getElementsByTagName('path')[0];
p.parentNode.insertBefore(document.importNode(g,true),p);
};
xhr.send();
IE9 throws a script error when calling importNode:
SCRIPT16386: No such interface supported
I found a question where someone else reports a similar problem. You can see a live example of this problem on my website. (The SVG file itself displays a fractal, uses XHR to fetch another SVG file, uses one technique to manually import one of the nodes and then attempts to use importNode
to import another node. One Chrome, Safari, or Firefox you see two grey diamonds imported into the document, while on IE9 only the first diamond works.)
How can I make importNode
work with IE9?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…