私の質問は基本的には、Ajaxの汎用機能を解析して情報を取得するためだけにしようとしています。この機能は解析され、呼び出されたものの値として自動的に格納されます。この特定のケースでは、私が作っているハンケマンゲームのための巨大な辞書の単語リストです。 ajaxRequest.responseText.split("\n")
によって作成された配列を、どのようなものにでもエスケープできます。私の場合、それはALAMI.Hangman.Wordlist
XHR関数から解析されたデータをエスケープするにはどうすればよいですか?
私の最終目標は、ALAMI.Hangman.Wordlist[i]
を使用して、それがどのような文字列の値を配列にその場所に格納されている返す持ってできるようになっております。
これは私のコードのすべてではありませんが、XHRリクエスト機能はALAMI.XHR();
によって呼び出されますが、以下のように呼び出されていますが、このコードには含まれませんでした。
ALAMI.XHR.Get = function(URL){
"use strict";
var ajaxRequest = ALAMI.XHR();
var ajaxResponse;
ajaxRequest.open("GET", URL, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState === 4){
ajaxResponse = ajaxRequest.responseText.split("\n");
var extensionLocation = URL.lastIndexOf('.');
console.log(URL.substr(extensionLocation) + " file ...... " + ajaxResponse.length + " lines.");
}
}
return ajaxResponse;
}
ALAMI.Hangman = ALAMI.Hangman || {};
ALAMI.Hangman.Wordlist = ALAMI.XHR.Get('fulldictionary.txt');
//I want ALAMI.Hangman.Wordlist to be equal to the Array of ajaxRequest.responseText.split("\n")
私の最終目標は、ALAMI.Hangman.Wordlist[i]
を使用して、それがアレイ内のその場所に格納されているものは何でも、文字列の値を返す必要がありすることができることです。
また、私はajax関数を普遍的な方法で無限回数使用できるようにしようとしています。
ALAMI.Hangman.Wordlist1 = ALAMI.XHR.Get('fulldictionary.txt');
ALAMI.Hangman.Wordlist2 = ALAMI.XHR.Get('dictionary2.txt');
が最終目標は次のとおりです:例えば
グローバル空間で、私はconsole.log(ALAMI.Hangman.Wordlist[0]);
を記述する場合、それは現在未定義として表示配列がそうALAMI.Hangman.Wordlist
に格納されているとのために、しかし、私が欲しいのです私がそれをすると、配列の最初の値が出力されます。 [コメントに基づいて編集した]
console.log(ALAMI.Hangman.Wordlist[0]); //Should output Apple
多くの点:(1)ALAMIとは何ですか? (2) 'fulldictiornay.txt'は私にとって有効なURLのようには見えません(3)' onreadystatechange'関数が別のスレッドで実行されていて、onreadystatechangeの 'ajaxResponse'の値がメインスレッドで利用できないことを知っていますか? 'return ajaxaResponse'は決して動作しませんか? –
ALAMIは、私がjavascriptで作成したすべてのもの(私はYAHOOなどとは対照的に)のための私の個人的な名前空間です。 fulldictionary.txtは.jsファイルとhtmlファイルと同じフォルダにあるため、有効なURLです。このコードのすべては、 'ajaxResponse'の戻り値を除いて動作します。 – person0