重複の可能性:
コンテンツに基づいて iframe のサイズを変更する
ページの 1 つを iframe にロードしようとしています。ページがどれだけ大きくなるかはわかりません。ページ上のデータは動的に読み込まれます。どんなに大きくても小さくても、常に iframe をページに合わせたいと思います。ここに私が持っているものがあります:
function loadModal() {
    myframe = $('<iframe id="mymodal" src="MyPage.aspx" width="700"></iframe>');
    myframe.appendTo($('html'));
    var height = document.getElementById('modalPreview').contentWindow
                     .document.body.scrollHeight;
    $("#mymodal").attr("height", height);
}
ページが読み込まれた後、ページの高さを取得しようとしています。問題は、heightとして返されること0です。しかし、私がこれを行うと:
    setTimeout(function () {
        $("#mymodal").attr("height", height);
    }, 2000);
正しい高さがロードされます。データの読み込みに数秒かかるためだと思います。しかし、ページの読み込みが非常に速い場合、これはファンキーに見えます。または、ページの読み込みに 2 秒以上かかる場合でも、高さが 0 になります。
だから方法があります:
- データが読み込まれたら、iframe の高さを設定します。または、
- 親 iframe の高さをMyPage.aspx?から設定します。