ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

JavaScriptコミュの【質問】iframe内のhtmlから自分のiframeサイズをコントロールする方法

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お世話になります。
表題質問に対して、皆さんのお知恵を拝借したいと思います。


<希望動作>
hoge.htmlからiframe3のサイズ(height)をコントロール

<構造>
top
|-iframe1
|-iframe2
|-iframe3---hoge.html

<ソース hoge.html>
<SCRIPT LANGUAGE=JavaScript type="text/JavaScript">
<!--
function testResize() {
  parent.iframe3.resizeTo(固定値,heightx);
}
// -->
</SCRIPT>
</head>
<body onLoad="testResize();" bgcolor="...

<状況>
Windows2000 IE6 --- 正常動作
Windows2000 FireFox1.0.4 --- 無反応
OS9 IE5.0 --- ブラウザ自体のサイズが変わる
OSX IE5.2 --- ブラウザ自体のサイズが変わる
OSX safari1.3 --- ブラウザ自体のサイズが変わる

<追記>
parent.document.getElementById('iframe3').style.height = "heightx";
この方法の場合、Win2000IE6のみ希望の動作でそれ以外は無反応でした。

どうぞ、よろしくお願いいたします。

コメント(5)

目的のiframeにid="ASDF"としておいて

parent.document.getElementById("ASDF").width

でアクセスできたコトがあります。heightにしてもおそらく大丈夫かと思います。getElementByIdがいやならframes[n]でもいけるんじゃないかな。
この場合、resizeTo() は不適切だと思います。仕様的にどうなるのかはわかりませんが、ブラウザ自体のサイズに働いても不思議ではないです。

とりあえず、
parent.document.getElementById('iframe3').style.height = heightx + "px";
でやってみてください。
本来、CSSでピクセルサイズを設定する場合、20px のように単位を付けないといけません。単位なしが許されるのはゼロのみです。
これはJavaScriptから変更する時も同様です。
Firefox・MacIE5・Safariは(WinIEと違って)どれも仕様に忠実ですから、単位を付けないと無視します。

ちなみに、JavaScriptから単位なしの数値で指定する時は style.pixelHeight を使います。ただしIE専用ですけど。
あれ?とおもったらフォローされていて何より。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

JavaScript 更新情報

JavaScriptのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。