AJAX / Javascript - 将txt文件的内容传递给Javascript变量

时间:2011-12-10 03:43:57

标签: javascript ajax variables text-files

我试图将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

1 个答案:

答案 0 :(得分:4)

问题是这段代码

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

正在之前运行xhr回调。因此,单词为undefined

xmlhttp.send();正在发送您的ajax请求,然后立即返回。然后你的代码进入

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

其中单词仍为undefined,之后一段时间后,您的ajax请求完成,您的回调被调用,并且单词设置为结果太迟,无法照顾。