1

我想知道是否有某种方法可以做到,如果 iFrame 中有一堆内容,它只会调整文档的大小以使其适合。使 iFrame 内的所有内容变小。为了澄清我想调整内容的大小,而不是 iFrame 本身的大小。

有什么想法我会怎么做?

我已经尝试了一些东西,但到目前为止还没有运气。

脚本:

<script type="text/javascript">
function autoResize(id){
    var newheight;
    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}
</script>

框架:

<iframe id="iframehtml" style="width:100%;height:100%;" onLoad="autoResize('iframe1');"></iframe>

顺便说一句,没有为 iFrame 设置 src 的原因是因为我在 JavaScript 中有它,所以当您单击 aa 按钮时,它将通过 jQuery 编辑 iFrame 的 html。

4

2 回答 2

1

您可以使用 load 事件来调整 iframe 的大小

var iframe = document.getElementByID('your-iframe');
iframe.addEventListener('load', function() {
  iframe.style.height = iframe.contentWindow.document.body.offsetHeight + 'px';
})
于 2013-11-05T00:37:31.510 回答
0

您应该能够使用 jQuery .contents() 来实现这一点 -

假设id是您希望在 iframe 中更改的元素的 id:

var frame = $('#iframehtml')
frame.contents().find(id).width = (newheight) + "px";

http://forum.jquery.com/topic/chang-elements-in-an-iframe

于 2013-11-05T00:33:18.570 回答