2013-11-05 52 views
0

我想知道是否有某種方法可以使它在iFrame中有一堆內容時,它只會調整文檔的大小以適應它。縮小iFrame內的所有內容。澄清我想調整內容大小,而不是iFrame的大小本身。通過JavaScript調整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:

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

順便說一句,沒有SRC的iFrame中設置的原因是因爲我有它在JavaScript中,所以當你點擊AA按鈕,它會通過jQuery編輯iFrame的html。

回答

0

你應該能夠做到這一點使用jQuery .contents() -

假設ID是元素的您希望在iframe中更改ID:

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

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

+0

當我點擊時,iFrame仍然有scroolbars。 – user2812028

+0

iframe中的內容是什麼? _id_是iframe本身的id,還是要在iframe中更改的元素的id? – unclemeat

+0

那麼,實際上並沒有iFrame的來源,那就是問題所在。正如我所說的,iFrame中的內容實際上只是使用.contents()。html('test')來設置。它其實不是一個資源。那就是爲什麼我不相信我可以使用加載函數。 – user2812028

0

您可以使用加載事件來調整iframe的大小

var iframe = document.getElementByID('your-iframe'); 
iframe.addEventListener('load', function() { 
    iframe.style.height = iframe.contentWindow.document.body.offsetHeight + 'px'; 
}) 
+0

查看我對aruuu的回答的評論:) – user2812028

相關問題