我在我的PHP代码中调用了一些JavaScript,但我希望第二部分保持5秒钟。
我找到了类似setTimeOut(something, time)
(JS)和.delay(time)
(JQuery)的东西,但它们似乎都不适用于我的情况。
这是我的PHP:
$feedback = '<script>
$(document).ready(function() {
noty({"text": "Yep, you did it",
"closeButton": true, "closeOnSelfClick": true,
"closeOnSelfOver": false, "modal": false
});
});
</script>
<script>
window.location = "http://www.mysite.be/new/index.php";
</script>';
这是我要暂停5秒的第二部分(window.location
)。
但我无法弄清楚如何做到这一点。有什么建议吗?
答案 0 :(得分:10)
将第二部分替换为:
<script>
window.setTimeout( function() {
window.location = "http://www.mysite.be/new/index.php";
}, 5 * 1000 );
</script>
这在5s后执行匿名函数(参见MDN documentation setTimeout()
)。
答案 1 :(得分:2)
setTimeout
符合您的需求:
setTimeout('window.location = "http://www.mysite.be/new/index.php";', 5000);
由于eval
不是每个人都可以,如果eval
不适合你,也可以通过函数调用来完成:
var redirect = function(){
window.location = "http://www.mysite.be/new/index.php"
}
setTimeout(redirect, 5000)
顺便说一句,虽然jQuery的delay
可能会用来实现你想要的东西但不适合:
.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。