-1

重複の可能性:
JavaScript にスリープ機能はありますか?

これに遅延を追加して、非常に多くの秒後に閉じてリダイレクトするにはどうすればよいですか?

<script type="text/javascript">
  $(function() { parent.$.fancybox.close(); });
  window.parent.location.href = '/shop/basket';
</script>
4

3 に答える 3

3
window.closeAndRedirect = function() {
    parent.$.fancybox.close();
    window.parent.location.href = '/shop/basket';
}

setTimeout(closeAndRedirect, 5000); // 5 seconds

@jAndy は次のように指摘しています。

閉じるという意味だったのかもしれませんが、閉じてから5秒後にリダイレクトしますか?もしそうなら:

parent.$.fancybox.close(function() {
    setTimeout(function() {
       window.parent.location.href = '/shop/basket';
    });
});

close にコールバックがあると仮定します。そうでない場合は、おそらく:

parent.$.fancybox.close();
setTimeout(function() {
    window.parent.location.href = '/shop/basket';
});
于 2013-01-24T21:13:54.160 に答える
1

setTimeoutを使用して、コールバックから関数を呼び出します。

何かのようなもの:

$(function() { 
    setTimeout(function() {
        parent.$.fancybox.close(); 
        window.parent.location.href = '/shop/basket';
    }, 5000);
});

5 秒待つには、DOM の準備が整った時点から開始します。

于 2013-01-24T21:12:55.073 に答える
0

実際には、開いた(子)ページ内からではなく、親ページで直接行う必要はありません....setTimeoutカスタム ファンシーボックス スクリプトのコールバック内で使用して、次のような閉じるタスクとリダイレクトタスクをプログラムします。

$(".fancybox").fancybox({
    afterLoad: function () {
        setTimeout(function () {
            $.fancybox.close();
            window.location.href = "/shop/basket";
        }, 5000); // 5000 = 5 secs
    }
});

JSFIDDLEを参照してください

于 2013-01-24T21:56:17.277 に答える