2012-07-24 35 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的高度和繼承的寬度。