【发布时间】:2013-01-29 19:10:17
【问题描述】:
我展示了一个带有fancybox 的iframe。在 iframe 的 HTML 中,我这样做:
<body style="width: 650px; height: 430px;">
然后在 JS 中我执行以下操作:
$(".popup").fancybox({
padding : 0,
closeBtn : false,
autoSize : true,
fitToView : false,
beforeShow: function()
{
this.width = ($("iframe").contents().find("body").width());
this.height = ($("iframe").contents().find("body").height());
}
});
“.popup”在哪里:
<a href="url.php" class="popup" data-fancybox-type="iframe">
如果在该 iframe 中我加载了另一个不同尺寸的 HTML(比如 400x150),fancybox 会调整它的高度而不是宽度。
任何帮助将不胜感激!
编辑 1:
我第一次运行花哨的盒子时,“.fancybox-inner” div 的样式是这样的
width: 650px; height: 430px;
然后,当我在 iframe 中导航时,“.fancybox-inner” div 的样式会像这样
width: 650px; height: 150px;
但是第二个 HTML body 标签是这样的
<body style="width: 400px; height: 150px;">
编辑 2:
【问题讨论】:
-
你检查过 if ($("iframe").contents().find("body").width());给出一个合适的值?
-
@thaJeztah 我 console.log 并在第一次加载时只触发一次。
-
所以问题似乎不在于您无法设置尺寸(第一次有效),而是 beforeShow() 仅触发一次。您可以编辑/更新您的问题以澄清这一点。另外,我发现了这个,看起来很相似,也许有帮助:stackoverflow.com/questions/10769151/…
-
@thaJeztah 是的!那就是我有de beforeShow代码的地方。问题是,如果我在 iframe 内导航并且下一页具有不同的尺寸,fancybox 会以某种方式仅调整它的高度
-
你试过禁用 autoSize 吗?
标签: jquery fancybox-2