• 締切済み

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

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

  • n0s
  • お礼率71% (30/42)

みんなの回答

  • 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

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

  • フレームを使ったサブウィンドウから親ウィンドウへのデータセット

    下記のソースをフレームを使わないサブウィンドウから実行すると うまく親ウィンドウの該当項目へセットできますが、 フレームをつかったサブウィンドウからだとうまくセットできません。 ご存知の方おりませんか? よろしくお願いします。 function setData(theData) { window.opener.document.MAIN_FORM.DATA0.value = theData[0]; window.opener.document.MAIN_FORM.DATA1.value = theData[1]; window.opener.document.MAIN_FORM.DATA2.value = theData[2]; window.opener.document.MAIN_FORM.DATA3.value = theData[3]; window.opener.document.MAIN_FORM.DATA4.value = theData[4]; } <input type="button" onClick="setData(Array('000','111','222','333','444'))" value="選択">

  • サブウィンドウから親ウィンドウをリロード

    サブウィンドウから親ウィンドウをリロードするときに、 window.opener.location.href = "A.html"; のような使い方をしていますが、親ウインドウのアドレスを指定せずに行う方法がありましたら教えていただけないでしょうか。

  • サブウィンドウから、親ページのリンクを操作し、自身は閉じるやり方

    すいません。javascriptに詳しい方、教えて下さい。 今、親ページからポップアップで、サブウインドウを開いています。 やりたいことは、サブウィンドウにあるcloseボタンを押したら、 親ウィンドウを指定のページに移動して表示させ、サブウィンドウ自身は閉じる動作がしたいです。 調べてみたら、opener.location.hrefというのを使えばできるみたいなのですが、こういう記述で大丈夫なのでしょうか? プレビューしてみたら、一応動いてくれているみたいですが、文法的にはどうなのでしょうか? 教えていただければ、ありがたいです。 以下にソースを記述します。 <a href="index.htm#F" onClick="opener.location.href='index.htm#F; return false;" javascript:window.close();">

  • 親ウィンドウの別フレームを子ウィンドウから操作したい

    いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません! 内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。 1:画面を、AとBの2つのフレームに分割しています。 【index.html】 <frameset>  <frame src="A.html" name="A">  <frame src="B.html" name="B"> </frameset> 2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。 <a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a> 3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。 <a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a> と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、 B.opener.window.locationとか、 B.opener.window.location.hrefとか、 parent.B.window.locationとか、 parent.frames[1].window.locationとか、 ほかにもいろいろやってみたのですが、出来ませんでした・・・。 このような別フレームの操作が出来る方法があれば教えてください。 宜しくお願いいたします。

  • サブウィンドウを開くと親ウィンドウが上に戻ってしまう

    ページ途中のリンクからJavaScriptでサブウィンドウを開くとき、親ウィンドウが上に戻ってしまいます。 これをリンク位置でサブウィンドウが開くようにしたいのです。 どのようにすれば親ウィンドウが動かなくなりますでしょうか。 サブウィンドウ用のJavaScript function wopen1(){ window.open("aaa.htm","plain","scrollbars=yes"); } リンク側 <a href="#" onClick="wopen1()"> どうぞよろしくお願いいたします。

  • ▲▲サブウィンドウから親ウィンドウ操作など▲▲JavaScriptに詳しいかた見てください。

    大変ややこしい質問をさせて頂きます♪いつもお答えくださる皆様に感謝致します☆ まず親ページとなる「index.html」があったとします、そこからサブウィンドウを開きます「sub.html」。サブウィンドウには3つのリンクが張ってあります。 1.123 2.456 3.789 例えば、3つのうちの2番「456」をクリックした再に、サブウィンドウ「sub.html」を閉じ、さらに親ページ「index.html」を新たに様をした「xmas.html」に変更する事は可能でしょうか?? サブウィンドウのリンクをクリックすることによって、サブウィンドウを閉じ、親ページを変更するといった具合です。 可能だと思い調べたのですが…。知恵足らずで理解できずにいます。おわかりになる方いらっしゃいました、是非タグなどもそえてお教えいただきたいと思っております。よろしくお願いします♪

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

  • 親ウィンドウ(scriptで言うopener)を指定するtarget属性

    親ウィンドウ(scriptで言うopener)を指定するtarget属性 (サブフレームではなく)サブウィンドウから親ウィンドウを指定するためのtarget属性は、どう記述すれば良いか悩んでおります…。 たとえば具体的には… サブウィンドウを以下のアンカータグを使って開きます。 ■親ウィンドウ内 <a href="sub_page.html" target="winSub" onclick="window.open('sub_page.html','winSub');return false;"> 開かれたサブウィンドウから親ウィンドウをナビゲートする、アンカータグを表示したいのですが、 ■サブウィンドウ内 <a href="page2.html" target="★" onclick="opener.location.href='page2.htm';return false;"> 上記の★の部分には何を指定すれば良いのか解りません。 ※なお、ご覧のとおりscriptオフ環境に対する記述部分が問題になっており、scriptオンでは期待通りの動作をします。 サブウィンドウはサブフレームと同等に扱われると考え、「_parent」や「_top」を指定しても、単に自ウィンドウがページジャンプしただけでした(とりあえずIEのみでテスト)。 どなたか、target属性の指定方法、あるいは、そもそもtarget指定で開いたサブウィンドウには親子関係がない、などの情報など、何かありましたら、ご教授のほどお願いいたします。

    • ベストアンサー
    • HTML
  • サブウィンドウを閉じたときに親ウィンドウのリンク先

    サブウィンドウを閉じたときに親ウィンドウのリンク先 サブウィンドウを閉じたときに親ウィンドウを別URLに 飛ばすにはどうしたらよいですか? ちなみにサブウィンドウはボタンを押したらウィンドウが 閉じるという動きです。 下記のタグで実行できるのですが、 macのIE5.0で動きません。 IE5.0で動くようにしたいのですが・・・・ 下記がタグになります。 ご教授お願いします。 ======サブウインドウタグ======= <script type="text/JavaScript"> function jump_and_close() {  opener.location.href = "別URL";  window.close(); } </script> ======親ウィンドウへのリンク======= <input type="button" value="ボタン" onClick="jump_and_close()">

専門家に質問してみよう