1

我想让花式框尺寸与“手动创建”iframe 的内容大小相匹配。

我试过这个:http: //jsfiddle.net/ystLD/3/

但它不起作用,现在我有点卡在这里。

有谁知道如何做到这一点?

谢谢。

4

2 回答 2

5

“手动创建”iframe的缺点是,fancybox 并不真正知道type内容正在处理什么。我宁愿用选项打开fancybox type: "iframe"

然后,我认为您可以根据 的内容重新调整fancybox 大小的唯一方法iframe是对在 中打开的页面内的尺寸进行硬编码iframe,或者在 中htmlbody或者在包装容器中,例如

<html style="width: 800px; height: 650px;">

那么你可以使用beforeShow回调来获取iframe类似的尺寸

  beforeShow: function(){
   this.width = $('.fancybox-iframe').contents().find('html').width();
   this.height = $('.fancybox-iframe').contents().find('html').height();
  }

如果您不拥有打开的页面并且您无法对其尺寸进行硬编码,您仍然可以尝试获取or标记的innerWidth()and innerHeight(),但正如您在这个fork fiddle中看到的那样,它可能真的有问题htmlbody

Here is the answer that worked for someone else https://stackoverflow.com/a/10776520/1055987

于 2012-08-30T07:50:00.010 回答
0

您可以将宽度和高度附加到 iframe 的属性,因为无论如何您都是手动创建的。

.attr({ name: 'blah', width: '500px', height: '500px' })

如果您想要的东西与您正在获取的页面大小完全匹配,那么这是一项非常乏味的任务,因为 iframe 非常类似于打开浏览器窗口。您必须通过分析结构以编程方式确定最宽 div 的大小。此外,您必须确定页面是否使用响应式布局并为此使用特定大小。

于 2012-08-30T06:10:24.313 回答