模态元素被剪裁的Highcharts

时间:2012-07-24 17:00:06

标签: jquery iframe modal-dialog highcharts

我们有一个生成报告的Java servlet。现在我们包含了一个生成高图图表的选项,其中包含N个高图图表。该图应该在模态元素上打开(灯箱,iframe,无关紧要)。我使用fancybox并在iframe中显示图表加载,但高度和宽度都搞砸了。

似乎浏览器/ fancybox正在计算高级图表渲染之前图表元素的大小,并显示小尺寸的iframe。

我不一定要使用iframe,虽然图是从servlet URL调用的,但事先不可能知道它的大小。

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

使用fancybox 2.0.5,jquery 1.7.2,highcharts 2.2.5

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,方法是将highcharts HTML容器从浮动div更改为表结构,并将fancybox模式从iframe更改为ajax。

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

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

这是$(document).ready上的代码(call

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

这些表的宽度是通过内联CSS设置的(不是最好的,但必须以内联方式完成,因为每个图都有自己的宽度由servlet计算)。

all-floats方法将iframe的body元素保留为0高度并继承宽度。