2011-02-09 4 views
8

iframeの高さをコンテンツ内のコンテンツに合わせるにはどうすればよいですか?私はあなたがコンテンツの高さとiframeの高さの違いを計算すると思います(私は何をする方法がわからない)と高さとして使用する変数をインクリメントするためにwhileループで使用するが、私はラップすることはできませんこれらのことを実際どのように行うかについては頭を下げてください。質問する前に:はい、フレーム内のコンテンツは私のサイトからです。クロスドメインではありません。iframeの高さをコンテンツに合わせる

+0

は、誰もが、まだフレームを使用していますか? – yoda

+6

@yoda彼はiframeを意味しており、GoogleやFacebookなどのWebsphereの重要でない企業によってのみ使用されています。 –

+0

あなたのサイトにフレームコンテンツがありますか? – Trufa

答えて

1

あなたは、AJAXを経由して、たとえば、IFRAMEなく満たされた動的なdiv要素を使用する理由はかなりわからない、しかし:

のdivの高さを取得し、その後、div要素の中にはiframe内のコンテンツを入れてください。

$("#divId").height(); 

をしかし、あなたはjqueryのを使用できない場合は、これを使用することができるはずです::私はそうのようにjqueryのを使用してお勧めしたい

document.getElementById("divId").offsetHeight; 

が次にあなたがインラインフレームの高さを設定する必要があるだろうあなたが得たものに

jqueryの:

$("#iframeId").height($("#divId").height()); 

定期JS:

document.getElementById("iframeId").style.height = 
document.getElementById("divId").offsetHeight; 
+3

これは動作しません。しかし、iframeの外側からiframe divにアクセスすることはできません –

+3

しかし、これを行うことができます: 'document.getElementById(" frameId ")。contentWindow.document.getElementById(" id ")' – JCOC611

+0

@ JCOC611 'document.getElementById( "frameId")。contentWindow.document'は、少なくともFFで見ることができる限り、これらの日にもアクセスすることはできません。 – YakovL

0
<iframe id="moo" src="something.html"><iframe> 
<script> 
function onContentChange(){ 
    var NewSize=$('moo').getScrollSize(); 
    $('moo').setStyles({ 
    width: NewSize.x, 
    height: NewSize.y 
    }); 
} 
</script> 

とsomthing.htmlの内側に、底部またはのonloadイベントに

window.parent.window.onContentChange() 
の行に何かをします
+0

'' '$( '#moo')' ''もしこれがjqueryコールであるとすれば... – Guntram

+0

私がそれを書いたとき、私はmootoolsの男でした。 –

0

javascのiframeを動的にレンダリングするコンテナ要素( "td1")が描画されると、riptを返します。

<script type="text/javascript"> 
    var iframesrc = "@Href("~/about")"; 
    function init() { 
    var vHeight = document.getElementById("td1").offsetHeight; 
    document.getElementById("td1").innerHTML="<iframe style=\"width:100%; height:" + vHeight + "px\" src=\"" + iframesrc + "\"></iframe>"; 
    } 
    window.onload = init; 
</script> 

...

<td id="td1" style="width: 100%; height:100%;">     
</td> 
0

は、ここではjQueryを使用したソリューションです:

$('#iframe').height($('#iframe').contents().find('body').height()); 
関連する問題