フレームの中のインラインフレームにページを表示させるリンク



0   名前: まーくん : 2007/02/04(日) 12:18  ID:v92NbpVG sub-t1
構成は左側がメニューで右側のページを変化させて表示する形のHPです。

右側のフレームに表示したページの中にインラインフレームとプルダウンメニューでリンクを複数作成して
そのリンクを選択すると右側のフレーム内のインラインフレームの中にそのリンク先のページを
表示させるようにjavascriptを構成したいのですが・・・・、
どうしてもうまくできないのでどこか間違っているところがあればご指摘下さい。
ちなみにインラインフレームの名前はyoteiです。

<script language="javascript">
<!--
function navi(obj) {
url = obj.options[obj.selectedIndex].value;
if(url != "") {
parent.frames["yotei"].location.href = url;
}
}
//-->
</script>



↓プルダウンメニューのリンクのタグ

<form method=post><select onChange="navi(this)" >
<OPTION value="a.html" >a</OPTION>
<OPTION value="b.html" selected>b</OPTION>
</select></form>

これでページを作ると、左側フレームでメニューを表示し、
右側フレームにインラインフレームとプルダウンメニューがあるページを表示した状態で
プルダウンメニューからリンク先を選んでインラインフレームの中に
ページを飛ばそうとしてもできません。
しかし、右側のフレームに表示しているページだけをうつした状態(インラインフレーム以外の
フレームを使っていない状態)で先ほどと同じようにプルダウンメニューから
リンク先を選んでクリックすると正しくインラインフレームの中にページを飛ばせます。

なので恐らくリンク先を設定するとき「右側のフレームの中のインラインフレームの中」をターゲット
に指定しないといけないのだと思います。
しかしその方法がどうしてもわからないのでどうか助けて下さい・・・。お願いします。

1   名前: 匿名 : 2007/02/04(日) 12:18  ID:/sMf8B64 sub-kJ
フレームの階層構造を把握しる。
http://web.archive.org/web/20051218210244/http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/self.html

> 右側のフレーム内のインラインフレームの中

ならば、まず自分(self)から見て、親(parent)に移動、次に兄弟(frames['RIGHT_NAME'])に移動、その中に frames['yotei'] だしょ。

もっとも、iframe 要素の位置付けは実装依存部分が多いので、個人的には使用を避けたいけどね。

2   名前: まーくん : 2007/02/04(日) 12:18  ID:v92NbpVG sub-t1
ありがとうございます。
助言を参考にして
parent.frames["yotei"].location.href = url;
から
top.frames["右フレームの名前"].frames["yotei"].location.href = url;
に変更してみたところ正常に動くようにすることができました。
本当にありがとうございました。

一覧へ戻る