重複の可能性:
コンテンツに基づいて 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
?から設定します。