iframeの高さや幅をJavaScriptで自動的に調整
2021/04/15
ここは、親フレームで高さや幅を受け取ってJavaScriptでiframeの高さや幅を調整する方法のサンプルです。
前提条件
ここではiframeを読み込むページを親フレーム、読み込まれるほうを子フレームとします。
子フレームのソースコード
CSS
- iframe内でコンテンツがスクロールしないように
body
に「overflow: hidden;」
を指定する。
JavaScript
- ページの高さを取得。
parent.postMessage()
メソッドを使って高さを親フレームに送信。- このスクリプトをコンテンツが全て読み込まれた後の
</body>
タグの直前に設置。 parent.postMessage(h, "*")
の「*」の所に親フレームのURI(例: https://TEST.com)を指定(しなくても動作する)
親フレームのソースコード
HTML
- iframeでコンテンツを読み込みます。
- postMessage()をサポートしないブラウザ用にコンテンツの高さの最高値をheight属性に入れる。
JavaScript
- addEventListener()で子フレームからのメッセージを受け取る。
- document.getElementById('content-frame').heightで、メッセージで送られてきた高さ(e.data)を設定。