これまで多くの質問がありましたが、私はまだこのfileReaderを動作させる方法を困惑しています。現在私が持っているコードは次の通りです:JavaScript - XMLHttpRequest()の問題
var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP');
function updateWineProfile(name){
//write bio info
var filePath = "Data/"+name+".txt";
loadFile(filePath, name);
}
function loadFile(filePath, wineName) {
reader.onreadystatechange = displayContents(wineName);
reader.onload = doneLoading(wineName);
reader.open('get', filePath, true);
reader.send();
}
function displayContents(wineName) {
if(reader.readyState === 4 && reader.status === 200) {
reader.responseText = formatText(reader.responseText, wineName);
//document.getElementById('Info').innerHTML = "";
} else{
reader.responseText = formatText(reader.responseText, wineName);
document.getElementById('Info').innerHTML = formatText("Text Loading. Please Try Again.", wineName);
}
}
function doneLoading(name) {
document.getElementById('Info').innerHTML = formatText(this.responseText, name);
}
私は名前のリストを持っています。それぞれの名前については、 "Info"の.txtファイルがあります。 updateWineProfile
は、名前のリストのonClickイベントハンドラ中に呼び出されます。
私の問題は、2回目のクリック後にのみ機能することです。私が「A」と「B」のリストを持っているとしましょう。初めて「A」をクリックすると、私の小さな「テキスト読み込み」行が読み上げられます。しかし、 'B'をクリックすると、'Info'
にアイテムAのバイオが埋め込まれ、アイテムBの名前が表示されます。
formatText()
に渡されたときにthis.responseText
は更新されていないようです。私はreader.onload
を追加するとこれを修正すると思ったが、それはない。
(私はローカルファイルだけを読んでいる)
私のうわー...なんて新人ミスですか?ありがとう! – PieMan