Phi*_*ren 1 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>
Run Code Online (Sandbox Code Playgroud)
我能够让它重定向onclick但它在点击链接后立即重定向,但我希望它在重定向之前等待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>
Run Code Online (Sandbox Code Playgroud)
()
从setTimeout函数参数中删除.
setTimeout (js_go, 3000); // 3000 ms = 3 secs
Run Code Online (Sandbox Code Playgroud)
如果你有,那就意味着你传递函数调用的结果而不是函数引用.
作为背景信息,setTimeout可以以两种不同的方式使用:要么传递函数引用,就像你所做的那样,要么传递一个字符串,它将在setTimeout触发时计算.这意味着如果要将一些参数传递给setTimeout,您可以将它们作为字符串传递(如setTimeout('js_go("http://google.fi")', 3000)
)或将它们包装到函数中,这是首选的方式(setTimeout(function() {js_go("http://google.fi")}, 3000)
).
但是,由于此处不使用参数,因此您应该只传递函数引用,如上面的代码块所示.