2013-09-26 49 views
0

我已經實施了此前文章Resizing an iframe based on content中描述的解決方案,它幾乎可以很好地工作,但不是很完美。根據內容不一致高度計算調整iFrame的尺寸

我得到的問題是,有時它會正確計算高度,有時會計算得太短,內容會被截斷。

我正在尋找一些建議,可能會導致這種情況,因爲其他人似乎都有成功。在我看來,如果高度計算不正確,那麼可能在所有數據從外部源加載到iFrame之前進行計算。但這是一個猜測,我絕不是JS專家。

我能做些什麼來確保在外部頁面加載完成後進行計算?

回答

0

正確計算高度幾乎是不可能的。我已經玩了很長時間了。我所經歷的一件事情是,如果你在iframe中有一個表單,並且表單中有一些錯誤處理事件。假設有一個隱藏行的表格等等。然後當錯誤出現時,表格會在行開始出現時變得「更高」,所以高度範圍現在又不同了。無論何時在iframe內部進行回貼,都無法控制高度。我已經嘗試了所有發佈在那裏的解決方案,並且無法正確計算它。我不得不估計「最高」的高度,並且硬編碼它是那個高度。

+0

,會跑進一個如此感謝擡起頭。我認爲目前我遇到的這個問題與我與之通信的獨立應用程序有關,它本身是通過基於機器IP的googlemaps API進行多次調用。我認爲在結果清單完全恢復之前正在計算高度。如果我不斷刷新,有時候我會看到一切都很完美,有時候我不會。很奇怪。 – davidpauljunior

0

我期望的問題是,您需要檢測iFrame中的內容何時發生更改,然後再次調整iFrame的大小。在現代瀏覽器中,您可以使用mutationObserver來執行此操作,但它在IE10中不起作用,因此您必須使用故障回覆來解決此問題。

我寫了一個小型庫,用於處理所有這些問題,並保持iFrame的大小以適應內容。工作在現代瀏覽器和IE8以上。我從來沒有想過的形式問題

https://github.com/davidjbradshaw/iframe-resizer

相關問題