-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").fancybox({
    afterLoad: function () {
        setTimeout(function () {
            $.fancybox.close();
            window.location.href = "/shop/basket";
        }, 5000); // 5000 = 5 secs
    }
});

JSFIDDLE

于 2013-01-24T21:56:17.277 回答