用jquery设置fancybox高度

Posted

技术标签:

【中文标题】用jquery设置fancybox高度【英文标题】:set fancybox height with jquery 【发布时间】:2013-11-21 12:13:42 【问题描述】:

我想在我的页面上显示一个花式框,显示一个 iframe,其中包含另一个具有动态高度的域的源(因为在 iframe 中,我将转到不同的页面或可能有一些动态内容)。我也可以访问其他域的代码。所以我可以使用 postMessage 将 iframe 的源高度发送到我的页面。但我似乎不知道如何通过代码改变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();

【问题讨论】:

这可能对***.com/a/10776520/1055987有帮助 fancy box work with iframes in beforeShow function?的可能重复 问题是fancybox iframe 源来自另一个域,这似乎导致类似的东西不起作用。我无法以这种方式访问​​ iframe 内容。 你说你得到了正确的高度,所以尝试将它们放入一个变量中并使用该变量设置 this.height 与 fancybox 回调 【参考方案1】:

您是否尝试过内置的$.fancybox.update() 方法? the documentation 建议(在 API 方法下)该方法应提供您正在寻找的功能。

【讨论】:

那么我如何将高度传递给那个?【参考方案2】:

找到了,你要修改以下属性

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

【讨论】:

以上是关于用jquery设置fancybox高度的主要内容,如果未能解决你的问题,请参考以下文章

根据内部更改的内容动态调整 jQuery Fancybox 的 iframe 高度

如何设置fancybox iframe的高度和宽度

您如何在 fancybox V2 中为 iframe 设置不同的高度/宽度?

用jquery隐藏java applet?可能?

使用 Fancybox 的问题

动态调整 FancyBox 的高度