2012-08-30 88 views

回答

5

「手動創建」iframe的缺點是fancybox並不真正知道內容正在處理什麼type。我寧願用選項type: "iframe"打開fancybox。

然後,我想你可以根據iframe內容的fancybox重新大小的硬編碼iframe內打開頁面內尺寸的唯一途徑,無論是在htmlbody或包裝容器狀

<html style="width: 800px; height: 650px;"> 

,那麼你可以使用beforeShow回調以獲取iframe的尺寸一樣

beforeShow: function(){ 
    this.width = $('.fancybox-iframe').contents().find('html').width(); 
    this.height = $('.fancybox-iframe').contents().find('html').height(); 
    } 

若y OU不要自己打開的頁面,你不能硬編碼它的尺寸,你仍然可以嘗試獲得innerWidth()htmlbody標籤innerHeight(),但它可以是真正越野車,你可以在這個forked fiddle

看這裏是爲別人工作的答案https://stackoverflow.com/a/10776520/1055987

+0

謝謝@JFK! :) – dmmd

+0

真的很有用。一個警告,但。這個jQuery代碼忽略了對元素進行樣式化的任何空白,但是您可以將這些值添加回來以防止內容被截斷。 –

0

您可以將寬度和高度附加到iframe的屬性,因爲您無論如何都要手動創建該屬性。

.attr({ name: 'blah', width: '500px', height: '500px' }) 

如果你想要的東西,將你取那麼這是一個非常繁瑣的任務,因爲一個iframe是很像打開一個瀏覽器窗口中的頁面的大小完全匹配。你將不得不通過分析結構來確定最寬的div的大小,並通過編程來確定。此外,您必須確定頁面是否使用了響應式佈局,併爲此使用了特定的大小。