为什么这个小重定向不起作用(javascript)?

时间:2009-12-14 16:17:29

标签: javascript

function redir(){
setTimeout(window.location = '/SV/main/main.html', 10);
}

我不知道延迟是以毫秒还是秒为单位,但我已经尝试过了。 (通过添加三个零)。

问题是,重定向是立即完成的,没有任何延迟......为什么?

由于

顺便说一下BTW这样叫:<body onload="redir();">

5 个答案:

答案 0 :(得分:5)

您必须将javascript语句放在引号之间:

function redir(){
    setTimeout("window.location = '/SV/main/main.html';", 10);
}

延迟是以毫秒为单位。

正如评论和其他答案中所说,使用匿名函数来做这些事情要清晰得多:

function redir() {
  setTimeout(function(){
    window.location = "/SV/main/main.html";
  }, 10); // 10 milliseconds
}

答案 1 :(得分:3)

更清洁的方式来写这个:

function redir() {
  setTimeout(function(){
    window.location = "/SV/main/main.html";
  }, 10000); // fire after 10 seconds
}

答案 2 :(得分:2)

尝试

setTimeout(function(){window.location = '/SV/main/main.html';}, 10);

10是毫秒。

答案 3 :(得分:1)

setTimeout 需要一个函数和一个超时间隔。

function redir() {
    setTimeout(function() {
        window.location = '/SV/main/main.html';
    }, 10);
}

答案 4 :(得分:0)

您应该使用location的href属性,并将代码包装在函数中。

window.setTimeout( function() { window.location.href = '/SV/main/main.html';} , 10 );