我在我的页面上有这个脚本,并且setTimeout函数永远不会触发。这只是一个警报,但我只是测试它。我正在页面上进行元刷新,如果这是任何线索,但我也给了10秒的延迟,所以页面在它应该触发之前不会刷新。
另外,相关的问题:如果我运行一个延迟为10秒的javascript(使用setTimeout)并且在javascript中我尝试修改setTimeout声明时不在页面上的设计元素但是在脚本被触发时。它会起作用吗?
<script language=javascript>
var xmlhttp_get_memento;
function loop_alerte(){
setTimeout( function() {
alert("timeout");
}, 5000);
xmlhttp_get_memento = new XMLHttpRequest();
if (xmlhttp_get_memento==null)
{
alert ("Browser does not support HTTP Request (1)");
return;
}
var url="crm/ajax/get_mementos.php";
url=url+"?sid="+Math.random();
xmlhttp_get_memento.onreadystatechange=function() {
if (xmlhttp_get_memento.readyState == 4) {
alert(xmlhttp_get_memento.responseText);
schimbare_tip_cursor("default");
}
else{
schimbare_tip_cursor("progress");
}
};
xmlhttp_get_memento.open("GET",url,true);
xmlhttp_get_memento.send(null);
}
loop_alerte();
</script>';
答案 0 :(得分:1)
你的setTimeout
看起来不错,所以可能还有其他错误。您是否尝试过使用javascript调试器来查看是否有任何错误?
关于你的第二个问题,是的,这不应该是任何问题,因为setTimout中的匿名函数在运行之前不会被评估。这里的实时示例:http://jsbin.com/afonup/2/edit有和没有jQuery。
答案 1 :(得分:0)
你的setTimeout没有问题,你需要进一步调试 至于你的第二个问题 - 该功能将运行,但无论你想做什么都行不通。
答案 2 :(得分:0)
清理代码将是一个不错的开始。我可以想象浏览器无法理解标记<script language=javascript>
。我建议使用<script type="text/javascript">
,如果你很幸运,你的javascript可能有效!