[解決済み] jquery get height of iframe content when loaded (ロードされたときの iframe コンテンツの高さを取得する)
2023-03-15 19:34:54
質問
help.phpというヘルプページがあり、main.phpのiframe内に読み込まれています。 このページがiframeに読み込まれたら、どのようにして高さを取得することができますか?
私はiframeの高さを100%またはautoにスタイルすることができないので、これを尋ねています。そのため、私はjavascriptを使用する必要があると思います。 私はjQueryを使用しています。
CSSを使用しています。
body {
margin: 0;
padding: 0;
}
.container {
width: 900px;
height: 100%;
margin: 0 auto;
background: silver;
}
.help-div {
display: none;
width: 850px;
height: 100%;
position: absolute;
top: 100px;
background: orange;
}
#help-frame {
width: 100%;
height: auto;
margin:0;
padding:0;
}
JSです。
$(document).ready(function () {
$("a.open-help").click(function () {
$(".help-div").show();
return false;
})
})
HTMLです。
<div class='container'>
<!-- -->
<div class='help-div'>
<p>This is a div with an iframe loading the help page</p>
<iframe id="help-frame" src="../help.php" width="100%" height="100%" frameborder="1"></iframe>
</div> <a class="open-help" href="#">open Help in iFrame</a>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
</div>
どのように解決するのですか?
OK 私は最終的に良い解決策を見つけました。
$('iframe').load(function() {
this.style.height =
this.contentWindow.document.body.offsetHeight + 'px';
});
一部のブラウザ(古いSafariやOpera)では、CSSのレンダリング前にonloadが完了したと報告するため、マイクロタイムアウトを設定し、iframeのsrcを空白にして再割り当てする必要があります。
$('iframe').load(function() {
setTimeout(iResize, 50);
// Safari and Opera need a kick-start.
var iSource = document.getElementById('your-iframe-id').src;
document.getElementById('your-iframe-id').src = '';
document.getElementById('your-iframe-id').src = iSource;
});
function iResize() {
document.getElementById('your-iframe-id').style.height =
document.getElementById('your-iframe-id').contentWindow.document.body.offsetHeight + 'px';
}
関連
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] jQuery ドロップダウンから選択されたオプションを取得する
-
[解決済み] jQuery get specific option tag text
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] jQuery/JavaScript:iframeのコンテンツにアクセスする
-
[解決済み] ウェブページがiframe内に読み込まれているのか、それともブラウザのウィンドウに直接読み込まれているのかを識別するにはどうしたらよいですか?
-
[解決済み] コンテンツに応じたiframeのサイズ変更
-
[解決済み] jQueryは要素のレンダリングされた高さを取得しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQuery 複数のイベントで同じ関数を起動する
-
[解決済み] jQueryのSELECT要素で特定のオプションを選択するにはどうすればよいですか?
-
[解決済み] jQuery.ajaxでmultipart/formdataを送信する。
-
[解決済み] Twitter Bootstrapのモーダルクローズに関数をバインドする
-
[解決済み] jQueryでtextareaの値を設定する
-
[解決済み] ドロップダウンのアイテムの選択値をjQueryで取得する
-
[解決済み] GoogleのCDNからjQuery UI CSSをダウンロードする
-
[解決済み] jQueryで多段式フォームをリセットする
-
[解決済み】offsetHeight, clientHeight, scrollHeightとは何ですか?
-
[解決済み】jQueryがリクエストボディに有効なjsonを投稿する。