プロが教える店舗&オフィスのセキュリティ対策術

下記のようなスクリプトでjQueryを使い、ajaxでtextを取得します。
コールバック関数内では、もちろんtextが使えるのですが、コールバック関数外からはtextに一切アクセスできなくなります。

このようにグローバルからajaxで取得したデータは取得できないのでしょうか?

prototype.jsでも同じ結果です。
グローバルからの取得法、ご存知の方いらっしゃいましたらご教示頂ければと思います。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript"><!--
$(document).ready(function (){
$.get("./sample.txt",function(text){
alert(text); // textが取得できる
});
});
alert(text); // textが取得できない
// --></script>

A 回答 (1件)

関数の引数として宣言された変数


function(・・・)←カッコの中身
はvar がなくとも常にローカル変数になるので外部からはアクセスできません。
(これはAjaxとかjQueryとか関係なく単純にJavascriptの仕様)

グローバル変数を用意しておいて、
コールバック関数内でグローバル変数に退避するのが手っ取り早いかと思います、
    • good
    • 0
この回答へのお礼

ありがとうございました。
ご教示頂いた通り、グローバル変数を宣言してコールバック関数で変数に突っ込むというやりかたで、期待通りの動作が確認できました。
まだまだ勉強することだらけです。
ほんとうに、ありがとうございました。

お礼日時:2007/10/13 12:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!