2014-01-26 21 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

我说的很明显其他人已经得到它的工作,但我从来没有。只是想尽可能多地为您提供尽可能多的资源,用非常少的解决方案来解决一个非常流行的问题(大多数情况下只是一种黑客)。我的答案的重点是说我从来没有发现任何工作一致。 –