关闭fancybox并使用函数打开新的

时间:2011-10-04 19:31:34

标签: php jquery iframe fancybox

我有一个应用程序,我使用Fancyboxes通过Fancyboxes中的IFRAMES显示来自服务器的内容。因此,我希望在服务器中提交或更改数据后运行脚本,该服务器使用IFRAME调用当前的fancybox来关闭并打开另一个内部具有新url,size和iframe的fancybox。

我已经通过各种Google搜索网站尝试了几种不同的代码,但没有一种适用于我的应用。

非常感谢帮助!

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

3 个答案:

答案 0 :(得分: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?

[UPDATE]

据我所知:你用fancybox打开了A.php。在A.php上你可能有一个表格,表格被提交给B.php。如果是这种情况,你必须关闭+打开或只调整B.php的document.ready中的fancybox父级。$ .fancybox.function_name。

答案 1 :(得分:0)

不知道你是否尝试过这个,但似乎对我有用:

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

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

答案 2 :(得分:0)

@TamasPap建议的方法对我不起作用,因为我花了几个小时研究和实验,直到我终于找到一种有效的方法,我想分享它。

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

您可以按照与创建函数时相同的方式在“iframe”之后指定任何选项,帮助器或css。