2011-10-04 74 views
2

我有一个应用程序,我正在使用Fancyboxes通过Fancyboxes内的IFRAMES从服务器显示内容。所以,我希望在服务器中提交或更改数据之后运行脚本,该服务器使用IFRAME调用当前fancybox,以关闭并打开另一个fancybox,其中包含新的url,size和iframe。关闭fancybox并使用功能打开新的

我已经尝试了几个不同的代码,通过各种谷歌搜索网站,但没有人为我的应用程序工作。

帮助将不胜感激!

UPDATE:找到了答案在这里:http://www.amitpatil.me/fancybox-runtime-resizing-of-iframe/

回答

1

呼叫$.fancybox.closeparent.$.fancybox.close()(从IFRAME)并打开一个新的:

$.fancybox({    
'transitionIn' : 'none', 
'transitionOut' : 'none', 
'width'  : 680, 
'height'  : 495, 
'href'  : 'http://example.com/new' 
}); 

或只是调整fancybox:$ .fancybox.resize()。 这将帮助你调整:How do you resize Fancybox at runtime?

[更新]

按照我的理解:你有a.php只会用的fancybox打开。在A.php上,你可能有一个表单,表单被提交给B.php。如果出现这种情况,您必须关闭+打开或者只是调整B.php的document.ready中的fancybox的父级。$。fancybox.function_name。

+0

感谢您的快速解答。起初我正在寻找调整大小,不知道为什么我没有遇到这种联系。 – drummer392

+0

很高兴为您效劳!如果答案能帮助您解决问题,请考虑接受答案。 –

+0

对不起,只是为了弄清楚这一点,在我的PHP动作被调用并且所有东西都被发送到数据库之后,我只需调用parent。$。fancybox.close()关闭fancybox,然后将其他代码放入父页面,它会自动打开一个新的fancybox? – drummer392

0

不知道你是否尝试过这一点,但似乎为我工作:

parent.MyFunction(); // call this from the iframed url 

function MyFunction(){ // have this in your parent page 
    // call your fancybox close function here 
} 
0

@TamasPap建议的方法不适用于我,因为我花了数小时研究和试验,直到我终于找到一种可行的方法,我想分享它。以同样的方式创建功能时,“IFRAME”你会:

parent.$.fancybox.open({ href : 'iframe2.html', type: 'iframe'}); 
parent.$.fancybox.close({ href : 'iframe1.html'}); 

您可以键入后指定任何选项,助手或CSS。