iframeの高さを自動調整するTips | to be continued ~とあるプログラマーの実験的開発日誌~

to be continued ~とあるプログラマーの実験的開発日誌~

WEBデザイナー兼プログラマーである管理人が日々のトラブル解決に向けて奮闘する開発日誌。

インラインフレームをそれと感じさせないためにスクロールバーを消したい時、困るのは読み込み先のページの高さが一定ではない場合。こんな場合のために、JavaScriptを利用したiframeの自動調整を行ってみる。


[親フレーム側の記述](<body>~</body>内)

<iframe src="呼び込む子フレームのアドレス" frameborder="0" id="インラインフレームのID" scrolling="auto">インラインフレームが表示される状態でご覧ください。</iframe>


[子フレーム側の記述](<head>~</head>内に記述)

<SCRIPT language="JavaScript">
function iframeResize(){
var PageHight = document.body.scrollHeight + 0; // ページの高さを取得
window.parent.document.getElementById('インラインフレームのID').style.height = PageHight + 'px'; // iframeの高さを変更
}
window.onload = iframeResize;
</SCRIPT>


ただし、子フレーム側のbody内の記述で一番下になるブロック要素にマージンがあると上手くいかないようだ。この場合、ダミーのブロック要素を最後に挿入すれば良い。