为什么这个setTimeout不起作用&相关问题

时间:2011-09-27 12:02:10

标签: javascript html settimeout

我在我的页面上有这个脚本,并且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>';

3 个答案:

答案 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可能有效!