2013-11-09 75 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);