2011-07-13 26 views
0

私はcharCodeAt()を使って1文字ずつ読みたいUnicode文字のテキストファイルを持っています。テキストファイルのURLを指定して、ファイルの内容を文字列として宣言するための構文がありますか?.txtファイルを文字列として宣言するにはどうすればよいですか?

編集:私はjQueryのas recommended belowを使用して、次のコードがあります。

var t; 
var music = function(source){ 
     $.get(source, function(data){ 
     t = data; 
    }); 
} 
music('music.txt'); 
alert(t.length); 

をしかし、アラートが現在undefinedです。私は何が欠けていますか?

答えて

1

XMLHttpRequestを使用できます。ロードすると、データはresponseTextに表示されます。

ブラウザのバリエーションは、use a libraryには良いアイデアを意味します。

+0

はい、どうですか?上記の編集をご覧ください。申し訳ありませんが、コードを早く提供しませんでした。 –

+0

データ**をコールバック**で処理します。変数は、HTTPリクエストが戻ってくる前に設定されていません。 – Quentin

+0

はい、それは問題です。 1つの解決策は '$ .ajax([...] asynch:false)'を使用してリクエストを非同期にすることです。 –

1

私が知る限り、ファイルを文字列に読み込むには、ajax呼び出しを使用する必要があります。

0

XmlHttpRequest、jquery、またはAJAXを使用して、URLを使用してテキストファイルを読み取り、レスポンスを解析できます。

0

The issue hereが問題でした。要求を同期させると、tを自分のスクリプトに沿って定義することができました。

2

$を使用します。 $の代わりにAjax。取得すると、非同期モード(async:false)への呼び出しを設定できます。これにより、ブラウザは処理を続行する前にAJAX呼び出しの実行を待機します。

「クロスドメイン要求とデータ型:jsonp」要求は同期操作をサポートしていません。同期リクエストはブラウザーを一時的にロックし、要求がアクティブな間はアクションを無効にすることがあります。

var t; 

var music = function(){ 
    $.ajax({ 
     async: false, 
     url: "/music.txt", 
     dataType: "text", 
     sucess: function(data){ 
      alert(data); 
      t = data; 
     } 
    }); 
}; 
music("music.txt"); 
alert(t.length); 

ありがとうございます。

関連する問題