2014-01-26 55 views
-1

我該如何實現自動化?我希望它可以將寬度/高度擴展到它所擁有的內容。什麼決定了iframe的寬度和高度?

例如在這個小提琴中,它看起來隨機制作一個300像素×200像素的盒子。

http://jsfiddle.net/fyaAR/

但內容實際上是約10頁或8.5英寸(11×10)英寸。一頁是8.5乘11英寸。我知道我可以通過簡單地將它們設置在CSS中來設置維度,但我希望它們能夠根據iframe的內容進行調整,即內容是動態的。

小提琴代碼:

<div id="community"> 
    <div id = "community_outer"></div> 
    <div id = "community_cover"></div> 
    <iframe scrolling="no" id="community_frame" src="https://docs.google.com/document/d/1n9bsHIBk1KxGQTKgUF-NG6FRhb4LP0OHfmd4I50CFCU/pub" ></iframe> 
</div> 
+0

看看這個問題,有你的問題的解答:http://stackoverflow.com/questions/9162933/make-iframe-height-dynamic-based-on-content-inside-jquery- javascript – mattsoave

+0

'iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight +「px」' –

+0

我想這也適用於寬度。不知道爲什麼瀏覽器不這樣做對我來說。 –

回答

1

我遇到這麼多的時間試圖輕鬆插入API和諸如此類的東西外。

這並不像人們想象的那麼簡單。 iFrames的全部原因是爲了避免帶有安全性的AJAX調用並顯示remote content

正因爲如此,你的文件將不會有document考慮的css性質,所以試圖讓頁面使其全面小於容易。


我建議讀入comments,並在下文描述的帖子:

Link to question 9162933

看起來像你將不得不使用script


複製的最相關的答案@Aristos

<script type="text/javascript"> 
    function iframeLoaded() { 
     var iFrameID = document.getElementById('idIframe'); 
     if(iFrameID) { 
      // here you can make the height, I delete it first, then I make it again 
      iFrameID.height = ""; 
      iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px"; 
     } 
    } 
</script> 

然後HTML

<iframe id="idIframe" onload="iframeLoaded()" ... 

我一直有這個問題的個人,所以我最終的解決辦法是以避免iFrames,但你可以安然無恙APS使這項工作。

也許使用Google的可用API s?

http://code.google.com/apis/ajax/playground/#news_show_via_iframe

+0

您是否認爲發佈的解決方案無效? –

+0

我說的很明顯其他人已經得到它的工作,但我從來沒有。只是想盡可能多地爲您提供儘可能多的資源,用非常少的解決方案來解決一個非常流行的問題(大多數情況下只是一種黑客)。我的答案的重點是說我從來沒有發現任何工作一致。 –