2011-10-04 65 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。