重定向脚本

时间:2012-10-21 06:57:31

标签: javascript jquery redirect

目前,我在x秒后将用户重定向到另一个页面,但我想要做的是,在y秒后重定向用户,并且只有在用户点击我页面上的链接后才会启动计时器,目前计时器仅启动用户访问我的页面后。

以下是我发现谷歌搜索的代码 -


<head>
<script>
function js_wait()
{
setTimeout (js_go(), 3000); // 3000 ms = 3 secs
}
function js_go()
{
window.location = "mynexpage.php";
}
</script>
</head>
<body>
<a href="" onclick="js_wait(); return false;">My link</a>
</body>
  • 正文显示链接
  • 点击后,它会调用javascript函数“js_wait”
  • js_wait启动计时器x秒,然后调用js_go
  • js_go重定向到该页面。

我可以让它重定向onclick但是它在点击链接后立即重定向,但我希望它在重定向之前等待y秒。

4 个答案:

答案 0 :(得分:6)

不要激活方法,只需传递函数签名,如下所示:

<head>
<script>
function js_wait()
{
setTimeout (js_go, 3000); // 3000 ms = 3 secs
}
function js_go()
{
window.location = "mynexpage.php";
}
</script>
</head>
<body>
<a href="" onclick="js_wait(); return false;">My link</a>
</body>

答案 1 :(得分:5)

从setTimeout函数参数中删除()

setTimeout (js_go, 3000); // 3000 ms = 3 secs

如果你有,那就意味着你传递函数调用的结果而不是函数引用。


作为背景信息,setTimeout可以以两种不同的方式使用:要么传递函数引用,就像你所做的那样,要么传递一个字符串,它将在setTimeout触发时计算。这意味着如果要将一些参数传递给setTimeout,您可以将它们作为字符串传递(如setTimeout('js_go("http://google.fi")', 3000))或将它们包装到函数中,这是首选方式(setTimeout(function() {js_go("http://google.fi")}, 3000))。

但是,由于你不在这里使用参数,你应该只传递函数引用,如上面的代码块所示。

答案 2 :(得分:3)

请更加简单地试试这个:工作演示 http://jsfiddle.net/FE4cT/

对于重定向,这是关键:window.parent.location

休息我希望它能满足您的需求:)

<强>码

function js_wait() {
    setTimeout(function() {
        window.parent.location = "http://www.google.com";
    }, 3000);

}​

示例

 window.setTimeout(function() {
        window.location.href = 'http://www.google.com';
    }, 3000);

即。在你的具体情况:

  window.setTimeout(function() {
            window.location = 'mynexpage.php';
        }, 3000);

答案 3 :(得分:2)

只需写作:

    function js_wait_redirect() {
      setTimeout(
           function(){
              window.location = "mynexpage.php";
           }
           , 3000); // 3000 ms = 3 secs
    }