インラインフレームの高さを動的に変更する方法[プログラミング]
(2009-06-13 18:07:52) by shinoda


今回、SSI の使えないサーバ上で、CGI や PHP で出力する HTML 内に Perl スクリプトの吐く内容を動的にセットしたい案件があって、SSI が使えないので iframe で CGI の出力結果をはめ込むようにしたんだが、新着情報のように表示件数が変化する部分は、
動的に高さを調整したい。

こう言うときは、JavaScript と組み合わせて制御するしかなく、

「IFRAMEの高さ可変」
http://nacky.s206.xrea.com/notebook/archives/2007/06/10-012813.php

というサイトを参考に組み込んでみたのだが、どうも、本来のコンテンツの高さよりも余分に高さ設定がされてるような・・・

画像にコピーして見てみたら、20px くらい高い。
高さ判定してるところで、無条件に -20 するようにしようかと思って JavaScript 見てみたら、

document.getElementById(ID).style.height = parent.frames[NAME].document.height +20 +"px" ;

みたいに、わざわざ本来の高さに +20 してあった。

ああ・・・なんだ、そうだったのか。ちゃんとソースを見てませんでした。(^^;

どうも、本来の高さキツキツに高さ設定をすると、Netscape 系のブラウザではスクロールバーが出てしまうので、その対策のようだ。
今回、うちの案件ではデザイン上の理由で scrolling="no" 固定にしているのでスクロールバーのことは考えなくて言い。

ということで、+20 の部分を削って、

document.getElementById(ID).style.height = parent.frames[NAME].document.height +"px" ;

としました。これでバッチリ。

↑件のサイトのオーナー様。素敵な JavaScript をありがとうございました。


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8