我有多个要异步加载的SVG文件。我编写了以下可以调用的函数:
function getSVG(fileName){
getSVG = new XMLHttpRequest();
getSVG.open('GET','assets/svg/'+fileName+'.svg',false);
getSVG.send();
return getSVG.responseXML.documentElement;
}
现在,我可以像这样加载内容:
var baseSVG = getSVG('base');
document.getElementById('canvas').appendChild(baseSVG);
效果很好,但是当我第二次尝试调用它时,它不起作用。例如:
var midSVG = getSVG('mid');
document.getElementById('canvas').appendChild(midSVG);
这次我得到以下错误:
'Uncaught TypeError: Property 'getSVG' of object [object object] is not a function
我不是javascript和ajax的出色专家,所以不确定这是怎么回事。
最佳答案
function getSVG(fileName){ // <- create a function in the global namespace called getSVG
var getSVG = new XMLHttpRequest(); // <- overwrite that function with a new XMLHttpRequest object
...
}