2

コンテンツに基づいて iFrame のサイズを変更するだけの JavaScript に問題があります。私は他の場所で動作していますが、この1つの例ではエラーがスローされています。次のコードを使用すると、bodyは null であるため、 を取得できませんscrollHeight

if(document.getElementById('iFrameHelpDesk') != null)
{
    var Height = document.getElementById('iFrameHelpDesk').contentWindow.document.body.scrollHeight;

    document.getElementById('iFrameHelpDesk').height = Height + 40;
}

使用されるhtmlは次のとおりです。

<iframe src="http://<snipped webaddress>" id="iFrameHelpDesk" scrolling="no" frameborder="no"></iframe>

bodyこれがオブジェクトに入力されないのはなぜですか?

4

1 に答える 1

4

非常に簡単に、ドキュメントのロード($(function() {}))メソッドからコードを取得し、実際のiframeがロードされるときに独自のメソッドにコードを挿入しました。つまり。

$('#iFrameHelpDesk').load(function() {

    var Height = document.getElementById('iFrameHelpDesk').contentWindow.document.body.scrollHeight;

    document.getElementById(iFrameHelpDesk').height = Height + 40;

});

これは、当然のことながら完全に機能します。しかし、私が同様のコードを実行している他のいくつかのiframeが、ドキュメントの読み込み内から正常に機能している理由について、今では混乱しています。しかし、これはうまくいき、私はそれで十分満足しています。

于 2012-09-12T15:50:17.900 に答える