我试图将txt文件中的单词列表读入Javascript变量,以便稍后在我的脚本中使用。但是,我无法将变量传递给onreadystatechange函数。我有一些简单的步骤吗?
来源:
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
答案 0 :(得分:4)
问题是这段代码
document.getElementById("testfield").innerHTML = word; //This doesn't work
正在之前运行xhr回调。因此,单词为undefined
此xmlhttp.send();
正在发送您的ajax请求,然后立即返回。然后你的代码进入
document.getElementById("testfield").innerHTML = word;
其中单词仍为undefined
,之后一段时间后,您的ajax请求完成,您的回调被调用,并且单词设置为结果太迟,无法照顾。