我有多个要异步加载的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
  ...
}

07-22 07:22