AJAX / Javascript - передача содержимого txt-файла в переменную Javascript. - PullRequest
1 голос
/ 10 декабря 2011

Я пытаюсь прочитать список слов из текстового файла в переменную 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 Ответ

4 голосов
/ 10 декабря 2011

Проблема в том, что этот код

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

выполняется до вашего обратного вызова xhr.В результате слово undefined

xmlhttp.send(); отправляет ваш запрос ajax, а затем немедленно возвращается.Затем ваш код переходит к

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

, где слово все еще равно undefined, затем, через некоторое время, ваш запрос ajax завершается, ваш обратный вызов вызывается, и слово слишком поздно устанавливается для результатаволновало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...