我在这段代码中遇到了一个奇怪的问题,实际上它可以工作1秒钟然后不再工作......也许某些变量/函数没有正确声明并导致这个奇怪的事情。
我的index.php中有这段代码。如果我把硬件代码放在函数myfunc par1和par2中设置为零,那么一切都行为正确,意味着loadfunc.php被这些参数正确调用,而如果尝试我发布的代码,我看到loadfunc.php被正确调用,所以我只能看1秒的正确输出..
<script type="text/javascript">
function myfunc(par1, par2)
{
var
$http,
$self = arguments.callee;
if (window.XMLHttpRequest) {
$http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
$http = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
$http = new ActiveXObject('Microsoft.XMLHTTP');
}
}
if ($http) {
$http.onreadystatechange = function()
{
if (/4|^complete$/.test($http.readyState)) {
document.getElementById('ReloadThis2').innerHTML = $http.responseText;
setTimeout(function(){$self();}, 1000);
}
};
$http.open('GET', 'loadfunc.php' + '?par1=' + par1 + '&par2=' + par2);
$http.send(null);
}
}
</script>
<script type="text/javascript">
setTimeout(function() {myfunc("0","0");}, 1000);
</script>
答案 0 :(得分:0)
setTimeout(function(){$self();}, 1000);
重置超时,但不设置参数,这就是它们显示为未定义的原因。