经过一整天没有解决这个问题。我读到这是不可能的或无法完成等。我确实浏览了所有相关的主题,但找不到解决方案。
所以我认为我的代码中的变量超出了范围,我不能返回它,不能使用它。
.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脚本的值。
我想要 html 文件中的这个 myvar 变量。像这样尝试:
window.onload = function() {
var myvar = MakeRequest();
alert (myvar);
}
它失败了,返回未定义的值。
还尝试将 MakeRequest 函数作为回调函数,然后从 html 中调用它
MakeRequest(function(txt){
});
然后我得到了回应,但可以提醒它。我不想提醒它。我需要将它存储在变量 myvar 中,因为稍后在代码中需要它。