インラインフレームをページの大きさに合わせて変化させる

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: だい : 2007/03/27(火) 07:42  [URL]  ID:BLLjIIi7 sub-t1
インラインフレームで

<iframe src="●●●.html" name="test" width="705" height="50" scrolling="auto" frameborder="1">
</iframe>

のタグをで,たとえば「●●●.html」のページは<BR>をいっぱい使ってるから高さが自動で高くなり
「△△△.html」はちょっとしか書いていないから自動的に高さが低くなる
ようにすることってできるでしょうか?

わかりづらくてすみません

1   名前: 元帥 : 2007/03/27(火) 07:42  [URL]  ID:LBhxx423 sub-bK
取り敢えずこんな感じかな。
IEや、IEのコンポーネントを利用したブラウザでは動作しないかもしれませんが、まぁ、無視してやって下さい。

JavaScript:
function chgSize(){
for(parent.frames['fm1'].scrollTo(0,1);
parent.frames['fm1'].pageYOffset>0 && window.innerHeight>document.getElementById('fm1').height;
document.getElementById('fm1').height=parseInt(document.getElementById('fm1').height)+10
);
}

HTML:
<input type="button" value="click" onclick="chgSize()">
<iframe name="fm1" id="fm1" src="hoge.html" width="100%" height="50"></iframe>

2   名前: 匿名 : 2007/03/27(火) 07:42  ID:6fAvcTJO sub-kJ
>>1
とっても細かい点だが、HTMLIframeElement.height は DOMString(typeof してみると分かる)。設定時は型変換されるから問題ないんだけど、値を取得するときは注意。

# だが、IE では Integer だからややこしい。


IE 対応するなら、window.pageYOffset の代わりに document.documentElement.scrollTop(後方互換モードでは document.body.scrollTop)を使えば良い。かもしれない。

3   名前: 匿名 : 2007/03/27(火) 07:42  ID:6fAvcTJO sub-kJ
って、parseInt してるくらいだから分かってたよね。脊髄反射すまん。

一覧へ戻る