这可能很棘手,因为iframe内容的高度/宽度取决于用户是否具有Flash插件。
iframe的最大宽度为800px,因此它会根据视口进行缩放。它加载了检测Flash插件的swfobject.js和swiffit.js,后者根据iframe的宽度缩放swf。如果没有Flash插件,它会加载一个mp4视频,其固定宽度为550px。
我在这里做了一个假的:
http://www.casedasole.it/fancyfit/
第一个按钮打开一个加载Flash影片的iframe(如果你有闪光灯)。第二个按钮加载第一个iframe的副本,但是删除了swfobject.js和swiffit,所以它的行为就好像没有Flash插件(因此加载了mp4)。
对fancybox设置进行哪些更改会使iframe 2适应视频的大小?
更新...
找到了这个:http://developersweblog.com/tag/fancybox-2/。看起来很简单,无法让它工作。
更新2
谢谢JFK,但我无法提前设置固定宽度 - iframe宽度取决于是否存在闪光灯。
我已将parent.jQuery.fancybox.update()
作为onclick=
插入到iframe的链接中,在检测iframe中的flash的脚本中,以及作为保存视频的div中的脚本。但是flash iframe和视频iframe都达到了maxwidth(800px)。到目前为止,唯一有效的(并且有点模糊地承诺)是:
beforeShow: function(){
this.width = $('.fancybox').contents().find('div#my_flash').width();
this.height = $('.fancybox').contents().find('div#my_flash').height();
}
更新示例:http://www.casedasole.it/fancyfit/
...其中“my_flash”是包含flash的div,如果没有检测到,则包含保存视频的div。有了这个,出于某种原因,视频宽度会根据需要变为minWidth 550px,但高度为maxHeight(420px)。那没关系,但flash iframe也需要minWidth和maxHeight。令人沮丧,,,,