2016-03-15 262 views
0

我有一个网站,当我点击一个链接时,它会弹出一个fancybox窗口,供用户在窗体中输入一些细节。iframe fancybox关闭后刷新父窗口

一旦用户完成表单并关闭它,我希望父窗口刷新以便新数据显示。

我使用的是fancybox 2.1.5版本,如果我可以更改jquery.fancybox.js来实现此更改而不是个别框,因为这是需要在所有花哨框上工作的东西。

有什么建议吗?

这是我如何在目前运行的fancybox:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.fancybox').fancybox(); 

     $("#fancybox-manual-b").click(function() { 
      $.fancybox.open({ 
       href : 'device-info.php', 
       type : 'iframe', 
       padding : 5 
      }); 
     }); 
    }); 

</script> 

这是从HREF引用这样的:

<a class="fancybox fancybox.iframe" href="edit-device.php"><img src="img/edit.png"</a> 
+0

更好的方法似乎是使用'afterClose'回调,解释[这里](http://fancyapps.com/fancybox/#docs)。你能提供调用fancybox的代码吗?它强烈**推荐不改变jquery.fancybox.js代码,所以它可能更适应fancybox调用。 –

+0

我已经编辑它作为要求有代码。我很感激帮助。 – Legend1989

回答

0

你可以使用一个通用的配置对象,只需修改每次通话所需的属性。类似这样的:

// This is the basic config, common to all calls 
var fancybox_general_config = { 
    type : 'iframe', 
    padding : 5, 
    afterClose: function() { 
     location.reload(); 
    } 
} 

// modifies just the href attribute, keeping other values 
fancybox_general_config.href = 'device-info.php'; 
$("#fancybox-manual-b").fancybox(fancybox_general_config); 

// modifies just the href attribute again, keeping other values 
fancybox_general_config.href = 'device-info-2.php'; 
$("#fancybox-manual-c").fancybox(fancybox_general_config); 

希望它有帮助!