• 締切済み

フレーム内から開いたサブウィンドウから親ウィンドウの別フレームの操作を行いたい

メニュー、メインの2つのフレーム分けしてあるページで、メインページからサブウィンドウを開きます。 その後、以下の2アクションを同時に行いたいのです。 (1)サブウィンドウから親ウィンドウ(メイン)をジャンプさせる (main.html→main2.cgi) (2)親ウィンドウ(メニュー)の画像をAからBに変更させる 現在window.openerでメインページの変更はできているのですが、 メニューページの画像のを変更がうまくできません。 方法としては (1)サブから親ウィンドウ(画像=A)を閉じさせて、再び親ウィンドウ(画像=B)を フレームセットごとムリヤリ開き直す。 (2)何らかの形でメニューページの情報を保存しておき、Onloadでサブからのジャンプ時に変更させる (3)サブから親ウィンドウのフレーム越し操作を行なって、メニューページの画像を変更する。 どの方法が可能でしょうか、もっといい方法がありますか。 お知恵拝借させてください。よろしくお願いします。 以下、かなり省略したソース説明です。 【フレームセット→cgi。記述は省略】 <frameset>  <frame src="menu.html" name="menu">  <frame src="main.html" name="main"> </frameset> 【メニュー→html】 <img src="A"> 【メイン→html】 function open_sub(url) { /**/ w = window.open(url, 'sub') } <!--本文--> <a href="javascript:open_sub('sub.html')">サブウィンドウ</a> 【サブ→html】 function change_main() { window.opener.location.href="main2.cgi?sub"; window.opener.focus(); } <!--本文--> <A HREF="JavaScript:change_main()">メインを変更</A>

みんなの回答

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.1

>(3)サブから親ウィンドウのフレーム越し操作を行なって、メニューページの画像を変更する。 この方法で可能だと思います。 画像表示の<IMG>タグ(イメージオブジェクト)に名前を付けます。 そして、そのファイルを指定するURLをフレーム越しに動的に変更します。 変更例) 【メニュー→html】 <img src="A" name="g_1"> 【サブ→html】 function change_main() { window.opener.top.menu.document.g_1.src="B"; window.opener.location.href="main2.cgi?sub"; window.opener.focus(); }

n0s
質問者

お礼

その後、さらに調べてみて 画像だけをA→Bに差し替えたメニューページのコピーを作って window.opener.parent.menu.location.href="menu2.html"; とすることで対処できました。どうもありがとうございました。

n0s
質問者

補足

回答ありがとうございます。window.opener.top.menu.document.g_1.src="B"; の top.menu.documentというのは、何か構文が決まっているのでしょうか? このまま記述しても作動しなかったです。 window.opener.menu.g_1.src="B"; でもダメでした。 フレームセットはdammy.cgi、メニューはmenu.html、メインはxx_main.htmlのような名前で記述しているのですが。 よろしければ補足回答いただけますか

関連するQ&A