如何使fancyboxresize以自定义创建的iframe大小
我想让fancybox尺寸与“手动创建的”iframe的内容大小相匹配。
我试过这个: http : //jsfiddle.net/ystLD/3/
但它不起作用,现在我有点卡在这里。
有谁知道如何做到这一点?
谢谢。
“手动创建的” iframe
的缺点是fancybox并不真正知道正在处理什么type
的内容。 我宁愿用选项type: "iframe"
打开fancybox type: "iframe"
。
然后,我认为你可以根据iframe
的内容重新调整fancybox的唯一方法是对iframe
中打开的页面内的维度进行硬编码,无论是在html
, body
还是包装容器中
然后你可以使用beforeShow
回调来获取iframe
的尺寸
beforeShow: function(){ this.width = $('.fancybox-iframe').contents().find('html').width(); this.height = $('.fancybox-iframe').contents().find('html').height(); }
如果您不拥有打开的页面而且无法对其维度进行硬编码,那么您仍然可以尝试获取html
或body
标签的innerWidth()
和innerHeight()
,但它可能真的很innerHeight()
,因为您可以在此看到分叉小提琴
以下是适用于其他人的答案https://stackoverflow.com/a/10776520/1055987
您可以将宽度和高度附加到iframe的属性,因为您无论如何都要手动创建它。
.attr({ name: 'blah', width: '500px', height: '500px' })
如果你想要一些与你正在获取的页面大小完全匹配的东西,那么这是一项相当繁琐的任务,因为iframe就像打开浏览器窗口一样。 您必须通过分析结构以编程方式确定最宽div的大小。 此外,您必须确定页面是否使用响应式布局并使用特定大小。