2012-07-24 56 views
0

我们有一个生成报告的Java servlet。现在我们添加了一个选项来生成一个包含N个highcharts图的高图。该图应打开模式元素(lightbox,iframe,无关紧要)。我使用了fancybox,并在iframe中显示加载图,但高度和宽度都混乱了。正在剪辑的模态元素Highcharts

看来,浏览器/ fancybox正在计算图表元素的大小,然后显示小图大小的iframe。

虽然从servlet URL调用该图并且事先不可能知道其大小,但我并不一定会使用iframe。

如果是这种情况,我可以使用另一个jQuery库。

使用的fancybox 2.0.5,jQuery的1.7.2,2.2.5 highcharts

+0

你能提供一些演示? – 2012-07-24 17:22:45

+0

在iframe中,你可以使用的情况下, javascript函数来调整iframe的大小h八和宽。当然,你可以从iframe中调用该函数,并将高度和宽度作为参数从highcharts的onload事件中传递。 – 2012-07-25 00:08:44

回答

1

我解决了这个问题,通过改变浮动的div的highcharts HTML容器表结构和IFRAME改变的fancybox模式阿贾克斯。

这样fancybox可以读取正确的大小。

Fancybox是唯一一个jQuery插件(我也测试了jqmodal和simplemodal)我能够从链接正确触发。链接在页面加载后通过页面上的ajax调用动态加载。

这是在$(文件)。就绪代码(调用

$("a.modalLightbox").fancybox({ 
type : 'ajax' 
autoSize : true, 
padding : 5, 
fitToView : true, 
}); 

该表已通过行内CSS(不是最好设置它们的宽度,但它有,因为每个图必须在线完成由servlet计算出其自身的宽度)。

全浮动办法要离开iframe的主体元素0的高度和继承的宽度。