3

我在 FancyBox 2 模态 iframe 窗口中打开了一个登录表单。但是当您提交表单时,网页会在模式中打开。

谁能告诉我是否以及如何关闭 Fancybox 模式,并在提交登录表单时重新加载底层页面?

这是我当前的代码 - 在 functions.js 文件中:

  $(".login-popup").fancybox({
    maxWidth    : 310,
    height      : 300,
    autoSize    : false,
    closeClick  : false,
    openEffect  : 'none',
    closeEffect : 'none'
  });

这是我的登录链接:

<a class="login-popup" data-fancybox-type="iframe" href="/popup/login" title="">Login</a>

谢谢你的帮助,

斯特

编辑1:

感谢您对此的帮助。对不起,我是一个完整的新手,但我无法获得 parent.$.fancybox.close(); 处理表单 submit() 事件。这是我现在正在使用的代码,但由于我做错了什么,它并没有关闭窗口。有什么想法吗?谢谢。

$(".login-popup").fancybox({
    closeEffect : 'none',
    'afterClose':function () {
      window.location.reload();
    },
  });

$(".login-form").submit(function(){
  parent.fancyBoxClose();
});
4

1 回答 1

4

要从 iframe 中关闭 fancybox,您可以parent.$.fancybox.close();form submit()事件上使用。

然后在 Fancybox 初始化器上添加一个 onClose 事件,它会重新加载页面:

$(".login-popup").fancybox({
    maxWidth    : 310,
    height      : 300,
    autoSize    : false,
    closeClick  : false,
    openEffect  : 'none',
    closeEffect : 'none',
    'afterClose':function () {
        window.location.reload();
    },
  });
于 2012-11-16T05:07:04.880 回答