3

PHP コード内から JavaScript を呼び出していますが、2 番目の部分を 5 秒間保持したいと考えています。

setTimeOut(something, time)(JS) や(JQuery) のようなものを見つけまし.delay(time)たが、私の状況にはどれも当てはまらないようです。

これが私の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.location5 秒ほど一時停止したい2 番目の部分 ( ) です。しかし、私はそうする方法を理解できません。助言がありますか?

4

2 に答える 2

10

2 番目の部分を次のように置き換えます。

<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 に答える