初めてIEで動作するloadXML()関数があります。XML データはノードリストとしてグローバル変数に格納され、最初にテーブルに入力するために使用されます。後でユーザー入力に対して検証されます。テーブルにデータが入力されますが、後でユーザーがボタンをクリックして検証を行うと、グローバル変数は不思議なことに空になります。
これはおそらく XMLHttpRequest の非同期性によるものだと理解しています。ノードリストを永続的なグローバル変数に保存するにはどうすればよいですか?
function loadXml(ws)
{
xml = new XMLHttpRequest();
xml.onreadystatechange = function ()
{
if (xml.readyState == 4 && xml.status == 200)
{
xmlDoc = xml.responseXML;
xmlAns = "";
x = xmlDoc.getElementsByTagName("question");
populate();
}
}
xml.open("GET", "xml/" + ws + ".xml", true);
xml.send();
}