2011-12-10 56 views
1

我想從txt文件中讀取單詞列表,將其用於稍後在腳本中使用的Javascript變量。但是,我無法將變量傳遞給onreadystatechange函數。是否有一些簡單的步驟,我錯過了?AJAX/Javascript - 將txt文件的內容傳遞給Javascript變量

來源:

var xmlhttp; 
var list = new Array(); 
var word; 

if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); 
else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     list = xmlhttp.responseText.split("\n"); 
     document.getElementById("testfield").innerHTML = list[0]; //This works 
     word = list[0]; 
    } 
} 

xmlhttp.open("GET","wordlist.txt",true); 
xmlhttp.send(); 

document.getElementById("testfield").innerHTML = word; //This doesn't work 

回答

4

的問題是,這種代碼

document.getElementById("testfield").innerHTML = word; //This doesn't work 

是被前你XHR回調運行。因此,單詞是undefined

xmlhttp.send();發送您的ajax請求,然後立即返回。您的代碼然後繼續

document.getElementById("testfield").innerHTML = word; 

其中字仍然是undefined,那麼,一段時間後,你的Ajax請求完成後,你的回調被調用,字設置爲結果爲時已晚,你的關心。