これに対する解決策なしで一日を過ごした後。私はこれが不可能であるか、できないなどと読みました。私は関連するすべてのトピックを調べましたが、解決策を見つけることができません。
したがって、コード内の変数はスコープ外であり、返すことも使用することもできません。
jsファイル:
function getXMLHttp()
{
var xmlHttp
try
{
//Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
//Internet Explorer
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert("Your browser does not support AJAX!")
return false;
}
}
}
return xmlHttp;
}
function MakeRequest()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4)
{
var myvar = new Array();
myvar=JSON.parse(xmlHttp.responseText);
return myvar;
}
}
xmlHttp.open("GET", "showimage.php", true);
xmlHttp.send();
}
したがって、上記は問題ありません。終了時のphpスクリプトの戻り値です。
そして、私はこのmyvar変数をhtmlファイルに入れたいと思っています。このように試しました:
window.onload = function() {
var myvar = MakeRequest();
alert (myvar);
}
失敗し、未定義の値を返します。
また、MakeRequest関数をコールバック関数として作成し、次のようにhtmlから呼び出してみました。
MakeRequest(function(txt){
});
それから私は応答を得ました、しかしただそれを警告することができます。私はそれを警告したくありません。後でコードで必要になるため、変数myvarに格納する必要があります。