この質問が以前に尋ねられたことは知っていますが、私はまだJavaScriptを学んでおり、他の人の答えの複雑さを理解するのに苦労しています。JavaScriptを読み取っているHTMLファイルと同じディレクトリにテキストファイルがあり、そのテキストファイルには文字通り1行が含まれています。テキストファイルからその行を取得して文字列に入れられるようにしたいと思います。FF、IE、Chromeで機能し、ブラウザの選択を除けば、かなり普遍的に有効な、これを行うための本当に簡単な方法は何ですか?繰り返しになりますが、これは以前に尋ねられたことがあることは知っていますが、他の場所で見たサンプルコードの複雑さから、ここで実際のメソッドを選択するのに問題があります。ありがとう!
3 に答える
jQuerygetメソッドを使用するhttp://api.jquery.com/jQuery.get/
$.get(url).success(function(data, status, response) {
var text = response.responseText;
// use your one line text stored in text variable here
}
url変数は相対的である可能性があるため、そこにテキストファイル名を配置できます。たとえば、テキストファイルの名前が「mytext.txt」で、それにアクセスするスクリプトの同じディレクトリにある場合は、次のように入力します。
$.get("mytext.txt").success(function(data, status, response) {
var text = response.responseText;
// use your one line text stored in text variable here
}
この回答は、httpを使用してテキストファイルにアクセスし、スクリプトとテキストファイルの両方が同じドメインにあることを前提としていることに注意してください。
ほとんどのブラウザはデフォルトでJSがコンピュータのファイルシステムからローカルにファイルを開くことを許可していないため、これは注意が必要です。ただし、ajaxを使用してWebサーバーからテキストファイルをリクエストできます。これを行うには、jQueryが非常に「普遍的に有効」であるため、jQueryをお勧めします。ajax呼び出しを行う場合、リクエストは同一生成元ポリシーに準拠する必要があります。素人の言葉で言えば、www.mysite.comにいる場合は、www.mysite.com / aTextFile.txtをリクエストできますが、www.someothersite.com/aTextFile.txtをリクエストすることはできません。
jqueryでこれを行うには、momoの回答を参照してください。私は同じことをタイプするつもりでしたが、彼/彼女は私をそれに打ち負かしました。
私が考えることができる最も簡単な方法は、サーバー側の言語を使用してドキュメントのコンテンツをページのどこかに出力し(invisibleなどtextarea
)、Javascriptにそれを読み取らせることです。AJAXもライブラリもありません、そしてそれは本当に速いです。
<textarea id="textarea"><?php include("test.txt") ?></textarea>
<script>
var str = document.getElementById("textarea").value;
</script>
さて、これは常に最良の方法ではありませんが、SEOのパフォーマンスを犠牲にして重いフレームワークでどこでも非同期Javascriptを使用することと比較して...