2013-11-09 127 views
1

我想在我的頁面上顯示一個fancybox,顯示一個iframe與另一個具有動態高度的域(因爲在iframe中,我將去不同的頁面或可能有一些動態內容)的來源。我也可以訪問其他域的代碼。所以我可以使用postMessage將iframe的源高度發送到我的頁面。但我似乎無法想象如何通過代碼來改變fancybox的身高。用jquery設置fancybox高度

我試着設置所有包含的iframe的div,包括IFRAME本身的高度:

document.getElementById('fancybox-frame').height = parseInt(height); 
document.getElementById('fancybox-content').height = parseInt(height); 
document.getElementById('fancybox-outer').height = parseInt(height); 
document.getElementById('fancybox-wrap').height = parseInt(height); 

,我知道我通過沒事獲得高度,因爲它完美的作品直接上集成了iframe。

任何人有任何想法?

感謝

編輯: 我也試過$ .fancybox.update(),但我不是如何實現真正確定:

$.fancybox({ 
'height': height 
}); 
$.fancybox.update(); 
+0

這可能有助於http://stackoverflow.com/a/10776520/1055987的 – JFK

+0

可能重複[在beforeShow功能的I幀看中箱的工作?] (http://stackoverflow.com/questions/10769151/fancy-box-work-with-iframes-in-beforeshow-function) – JFK

+0

問題是,fancybox iframe源是從另一個領域似乎導致類似的東西上班。我無法以這種方式訪問​​iframe內容。 –

回答

0

你試過內置的$.fancybox.update()方法? the documentation建議(在API方法下)此方法應提供您正在尋找的功能。

+0

,那麼我怎樣才能把高度傳遞給它呢? –

0

發現了它,你必須改變下列屬性

document.getElementById('fancybox-content').style.height = parseInt(height) + 'px'; 
document.getElementById('fancybox-frame').height = parseInt(height);