javascriptについてです。


>|
var xmlHttp;
function readPage(url,no){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else{
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttp = null;
}
}
xmlHttp.onreadystatechange = checkStatus;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function checkStatus(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
html = xmlHttp.responseText;
alert(html + no); // ★
}
}
|<

上記のコードで、readPage(url,no) で渡した no を、
最後の★印のところで表示するには、どう書けば良いか教えて下さい。

宜しくお願い致します。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2017/04/02 18:41:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:cubick No.1

回答回数129ベストアンサー獲得回数39

「変数のスコープ」の問題な気がします。JavaScriptは門外なので一般的な話をしますが
変数"no"が提示されたコード以外の場所で記述がなければ、readPage()内でのみ有効な
ローカル変数扱いになっているように見えます。

試すとしたら"var xmlHttp;"と同じ位置(下の行とか)に

var no;

と予め宣言を付け足す、とかでしょうか。

id:worldtravel

ありがとうございます。

実は連続して、この処理にurlを渡そうとしています。
ですので、仮に、教えて頂いた通りにしましても、

取得した、htmlとnoが異なってしまう筈なのです。

ですので、必ず対になって取得できる方法を知りたいと考えています。

面倒な書き方をすればできるのですが、
もっと簡単に書けないかなと思いまして、質問させて頂きました。

宜しくいお願い致します。

2017/04/02 12:09:52
  • id:worldtravel
    こちらを参考にして、解決しました。
    ありがとうございました。

    http://d.hatena.ne.jp/BigFatCat/20080511/1210521512

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません