2011-12-10 17 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リクエストを送信し、すぐに戻ります。あなたのコードはその単語がまだundefinedは、その後、いくつかの時間後に、あなたのAjaxリクエストが完了すると、コールバックが呼ばれており、単語が遅すぎる気にするあなたのための結果に設定されている

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

に移行します。

関連する問題