2014-03-24 57 views
0

我有多個想要異步加載的SVG文件。我已經寫了下面的功能,我可以打電話:使用javascript/ajax函數獲取多個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所以不知道這是怎麼一回事。

回答

2
function getSVG(fileName){  // <- create a function in the global namespace called getSVG 
    var getSVG = new XMLHttpRequest(); // <- overwrite that function with a new XMLHttpRequest object 
    ... 
} 
+0

啊是的getSVG變量聲明之前的var?這似乎現在起作用。你忘了把它放在你的答案中嗎? – Coop

+0

我已經故意拋棄它,這樣評論纔有意義,但只要你明白'var'是罪魁禍首,編輯對我來說就沒問題了 –