<script language="javascript">
var count = 5;
var g_container = [];
function callBack(num)
{
num = num+1;
if(num > count)
{
alert(g_container);//这个地方我想弹出随机数,但无论把全局变量count=3设置为几,最后弹出的还是一样的随机数,求解?
}
else
{
g_container.push(myName);
scriptServerCall('http://127.0.0.1/server.html',callBack(num));
}
}
function scriptServerCall(url,callBackFunction)
{
var oScript= document.createElement('script');
oScript.onreadystatechange = function ()
{
if(oScript.readyState == "loaded")
{
eval(callBackFunction);
}
}
oScript.type = 'text/javascript';
url = url + '?t=' + Math.random();
oScript.src= url;
document.appendChild( oScript);
}
setTimeout("scriptServerCall('http://127.0.0.1/server.html','callBack(0)')",10);
</script>server.html内容如下:var myName = parseInt(Math.random()*5+1);
页面:?我添加过了啊?url = url + '?t=' + Math.random();
是你异步的问题
dom.innerHTML += "push" + "<br />";
g_container.push(myName); dom.innerHTML += "onload" + "<br />";
eval(callBackFunction); 这2句代码上面都加上这个然后在代码头加个全局的var dom;
在setTimeout()后面加上 dom = document.getElementById("test");然后加一个id为test的html你再测试下 看看输出什么了都
#2.既然你在内部写的是eval(callBackFunction),那么传进来的callBackFunction应该是个代码字符串.scriptServerCall('http://127.0.0.1/server.html',callBack(num));要改成scriptServerCall('http://127.0.0.1/server.html','callBack('+num+')');
scriptServerCall的第二个参数进行了eval(callBackFunction)操作,所以按照六楼改一下。
最好发一下全部代码。