Jquery 关闭Fancybox 2窗口并重定向父窗口

Jquery 关闭Fancybox 2窗口并重定向父窗口,jquery,fancybox,Jquery,Fancybox,我有一个Fancybox 2 iframe模式窗口,其中包含一个“添加到购物车”表单。提交表单时,Fancybox模式窗口中将加载一个成功/确认页面 我想在此成功/确认页面上运行一个脚本,关闭Fancybox窗口并将父窗口重定向到此URL:“/shop/basket”我如何才能做到这一点 下面是我目前得到的代码(它只关闭Fancybox窗口,但不执行父窗口重定向): 编辑2: 这段代码符合我的要求——但是有人能想出更好的方法吗?这只是我拼凑的东西: <script type="text/j

我有一个Fancybox 2 iframe模式窗口,其中包含一个“添加到购物车”表单。提交表单时,Fancybox模式窗口中将加载一个成功/确认页面

我想在此成功/确认页面上运行一个脚本,关闭Fancybox窗口并将父窗口重定向到此URL:“/shop/basket”我如何才能做到这一点

下面是我目前得到的代码(它只关闭Fancybox窗口,但不执行父窗口重定向):

编辑2:

这段代码符合我的要求——但是有人能想出更好的方法吗?这只是我拼凑的东西:

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

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

不要尝试从子页面重定向,而是从父页面本身重定向

如果父页面(functions.js)中有此代码:

然后只需添加
afterClose
回调,如下所示

$(".add-to-cart-popup").fancybox({
    width       : 580,
    height      : 744,
    closeClick  : false,
    scrolling   : 'auto',
    afterClose  : function() {
       location.href = "/shop/basket";
    }
});

。。。您仍然需要执行
parent.$.fancybox.close()从子页面

如何初始化fancybox,您可以发布该代码吗?可能重复:我已将fancybox代码添加到原始帖子中,虽然我不确定是否需要,因为我觉得我的解决方案需要将代码添加到包含Fancybox close函数的原始脚本中。我不认为这是上述问题的重复,因为我想关闭Fancybox窗口并从成功/确认页面上自动运行的脚本重定向,不是来自单击事件或超链接。@Stephen,您最后使用的解决方案是什么?这是一个很好的答案,我会这样标记,尽管我有一个边缘案例,这意味着我必须使用自己的解决方案,而不是这个。使用afterClose回调将导致父页面重定向到篮子页面,即使用户从未单击“添加到购物车”按钮,只是决定关闭模式窗口。我只想把他们重定向到购物车,如果他们特别点击了那个按钮。谢谢。@Stephen:这是一个很好的观点。在重定向页面之前,您可以通过传递一个变量表单子项来解决此问题,并在
afterClose
回调中检查该变量。另一方面,我想知道为什么要使用
parent。
如果不使用
请键入:“iframe”
谢谢您的变量建议。老实说,我只是通过尝试和错误来找到解决问题的方法,所以我可能没有用最好的方式做事情,尽管它们看起来很有效。我会再检查一遍,看看能不能改进一下。谢谢
<script type="text/javascript">
  $(function() { parent.$.fancybox.close(); });
  window.parent.location.href = '/shop/basket';
</script>
$(".add-to-cart-popup").fancybox({
    width       : 580,
    height      : 744,
    closeClick  : false,
    scrolling   : 'auto'
});
$(".add-to-cart-popup").fancybox({
    width       : 580,
    height      : 744,
    closeClick  : false,
    scrolling   : 'auto',
    afterClose  : function() {
       location.href = "/shop/basket";
    }
});