3

我从我的 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>';

window.location这是我想暂停 5 秒的第二部分(the )。但我不知道该怎么做。有什么建议么?

4

2 回答 2

10

将第二部分替换为:

<script>
  window.setTimeout( function() {
    window.location = "http://www.mysite.be/new/index.php";
    }, 5 * 1000 );
</script>

这会在 5 秒后执行匿名函数(参见MDN 文档setTimeout())。

于 2012-06-19T13:39:15.683 回答
3

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)

顺便说一句,虽然delayjQuery 可用于实现您想要的,但它不适合:

.delay() 方法最适合在排队的 jQuery 效果之间进行延迟。因为它是有限的——例如,它不提供取消延迟的方法——.delay() 不能替代 JavaScript 的原生 setTimeout 函数,这可能更适合某些用例。

于 2012-06-19T13:40:10.250 回答