2012-04-08 74 views

回答

19

因为颜色框不会知道什么是iframe内,自动调整不能工作,你所期望的方式。

我那样做:

{ iframe: true, innerWidth: 430, innerHeight: 370, scrolling: false, ... } 

选择大小,这使得最适合您的内容:颜色框将打开并加载IFRAME使用这些选项打开颜色框时设置的默认宽+高进入这个盒子。 在iframe的HTML身体结束,把这个小脚本,它从iframe中调整大小的颜色框:

$(function(){ 
    parent.$.colorbox.resize({ 
     innerWidth:$('body').width(), 
     innerHeight:$('body').height() 
    }); 
}); 

对于第二个脚本工作,必须的jQuery的iframe中加载。否则,你必须使用本机JavaScript来完成这项任务。

并确保该iframe中的所有图像都设置了宽度/高度或已完全加载。否则,innerWidth/innerHeight会给出不正确的值。

+1

这是一个很好的脚本。另外,要明白这个问题在技术上并不是ColorBox不知道iframe中的内容,而是BROWSER直到内容下线并进入DOM才知道。 – 2012-04-09 03:31:57

+0

有人终于找到了一个工作解决方案!谢谢! – user1380540 2014-10-20 15:39:59

+0

不幸的是,这只适用于修改iFrame中内容的来源。如果你正在加载一些你无法控制的东西,看起来你唯一的选择就是手动设置高度/宽度。 – 2015-05-01 12:17:38