如何为此添加延迟以使其关闭并在这么多秒后重定向?
<script type="text/javascript">
$(function() { parent.$.fancybox.close(); });
window.parent.location.href = '/shop/basket';
</script>
答案 0 :(得分: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';
});
答案 1 :(得分:1)
使用setTimeout并从回调中调用您的函数。
类似的东西:
$(function() {
setTimeout(function() {
parent.$.fancybox.close();
window.parent.location.href = '/shop/basket';
}, 5000);
});
等待5秒,从DOM准备就绪开始。
答案 2 :(得分:0)
实际上,您不需要在已打开的(子)页面内直接在父级页面上执行此操作....只需在回调中使用setTimeout
即可自定义fancybox脚本,用于编写关闭和重定向任务,例如:
$(".fancybox").fancybox({
afterLoad: function () {
setTimeout(function () {
$.fancybox.close();
window.location.href = "/shop/basket";
}, 5000); // 5000 = 5 secs
}
});
参见 JSFIDDLE