当前,我在x秒后将用户重定向到另一个页面,但是我想做的是,y秒后重定向用户,并且计时器仅在用户单击链接后才启动我的页面,目前仅在用户访问我的页面之后才开始。
这是我发现的Google搜索的代码 -
<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秒钟,然后重定向。
不要激活该方法而不是通过这样的函数签名:
<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>
从settimeout函数参数中删除 ()
。
setTimeout (js_go, 3000); // 3000 ms = 3 secs
如果您在那里,则表示您传递函数调用的结果,而不是函数参考。
作为背景信息,可以以两种不同的方式使用settimeout:要么将其传递给函数引用,例如您所做的工作,要么传递字符串,该字符串将通过时间stetimeout Fires进行评估。这意味着,如果您想将一些参数传递到SetTieMout,则将它们作为字符串(例如setTimeout('js_go("http://google.fi")', 3000)
)传递,或将它们包装到函数,这是首选的方式(setTimeout(function() {js_go("http://google.fi")}, 3000)
)。
但是,由于您在此处不使用参数,因此您应该只通过上面的代码块中所示的函数参考。
尝试一下,请更简单:工作demo 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);
简单地写为:
function js_wait_redirect() {
setTimeout(
function(){
window.location = "mynexpage.php";
}
, 3000); // 3000 ms = 3 secs
}