プロが教える店舗&オフィスのセキュリティ対策術

メニュー、メインの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>

A 回答 (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();
}

この回答への補足

回答ありがとうございます。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のような名前で記述しているのですが。
よろしければ補足回答いただけますか

補足日時:2002/07/30 11:32
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/07/30 12:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!