我们有一个生成报告的Java servlet。现在我们包含了一个生成高图图表的选项,其中包含N个高图图表。该图应该在模态元素上打开(灯箱,iframe,无关紧要)。我使用fancybox并在iframe中显示图表加载,但高度和宽度都搞砸了。
似乎浏览器/ fancybox正在计算高级图表渲染之前图表元素的大小,并显示小尺寸的iframe。
我不一定要使用iframe,虽然图是从servlet URL调用的,但事先不可能知道它的大小。
如果是这种情况,我可以使用另一个jquery库。
使用fancybox 2.0.5,jquery 1.7.2,highcharts 2.2.5
答案 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高度并继承宽度。