• 締切済み

子ウィンドウ内にあるフレームセット内のフレームからの親ウィンドウリロード

初めまして。JavaScript初心者です。 今回、以下のようなことをやろうと考えております。 (1)あるウィンドウフレームセット(フレームセット(1)とします)を配置し、フレームでウィンドウを2分割し、上半分のフレーム名をフレームA、下半分のフレーム名をフレームBとします。 (2)フレームAに配置されたボタンを押すことにより、別のウィンドウを呼び出します。そのウィンドウにもフレームセット(フレームセット(2)とします)を配置し、そのフレームセット内もフレームを2分割し、上半分のフレーム名をフレームC、下半分のフレーム名をフレームDとします。 (3)フレームCに配置されたボタンを押すことにより、フレームD内にさらにフレームセット(フレームセット(3)とします)を配置し、フレームセット(3)内もフレームを2分割し、上半分のフレームをE、下半分のフレームをFとします。 (4)フレームEに配置されたボタンを押すことにより、フレームBをリロードします。 (1)~(3)はすべて正常に処理できるのですが、(4)がうまくいきません。 window.opener.フレームB.location.replace("フレームBのURL") でうまくいくと思ったのですが、うまくいきません。  つたない質問の書き方で大変申し訳ありませんが、どなたか分かる方がいらっしゃいましたらご教示いただけないでしょうか。宜しくお願い致します。

みんなの回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

結局のところ、A~Fの構成はどのようになっているのでしょうか? 私の解釈では、最終的に フレームセット1(1つめのウィンドウ) ├ A ─┐ └ B   │ open       ↓ フレームセット2(2つ目のウィンドウ) ├ C └ D(フレームセット3)   ├ E   └ F となっているのですが、このような構成の場合、EからBを参照するには   top.opener.parent.フレームB とします。 <解説> ウィンドウのオープン元の参照には opener を使いますが、opener は window.open によって新たに開かれたウィンドウしか持っていないので、この場合、フレームセット2にしかありません。 そこでEからはまず top でフレームセット2を参照し、そこから opener を参照する(つまり top.opener とする)必要があります。 また、top.opener が示すのはフレームセット1ではなくフレームAなので、top.opener からフレームBを直接参照することはできません。 ここではフレームAとBが兄弟なので、いったん親(top.opener.parent)を経由してフレームBを参照します。 なお、リロードを行う場合は、location.reload() というそのままのメソッドがありますので、こちらを使いましょう。 つまり、   top.opener.parent.フレームB.location.reload() となります。

noname#25358
noname#25358
回答No.2

 window.opener.opener.フレームB.location.href  これでどうでしょう?

  • nota55
  • ベストアンサー率37% (138/366)
回答No.1

このあたり↓が参考になりませんでしょうか。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=723500 http://www.ybi.co.jp/koike/qa2000/qa2488.htm

関連するQ&A

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

    下記のソースをフレームを使わないサブウィンドウから実行すると うまく親ウィンドウの該当項目へセットできますが、 フレームをつかったサブウィンドウからだとうまくセットできません。 ご存知の方おりませんか? よろしくお願いします。 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="選択">

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

    いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません! 内容は以下の通り(分からないのは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とか、 ほかにもいろいろやってみたのですが、出来ませんでした・・・。 このような別フレームの操作が出来る方法があれば教えてください。 宜しくお願いいたします。

  • フレームの組み方

    お世話になります。 フレームの組み方が分からなくなってしまいました。 どなたかご教示ください。こういうフレーム分割に したいのです。 ---------------------------------------- A ----------------------------------------      |   D   B  |------------------------------      | ------|   E      |   C  |      |      | -----------------------------------------      F ------------------------------------------ よろしくお願いいたします。

  • URLを引数とし、フレーム間で渡す方法

    こんにちわ。 現在開発しているWEBページで、困っています。 まず、最初のページで、フレームが左右に分割しています。 左フレームAはリンクがたくさんはってあります。 右フレームBはトップロゴがあります。 右フレームBのロゴを押すと、右フレームはさらに上下に分割し、上フレームCはヘッダーとして使用し、下フレームDは詳細画面になっています。 左フレームAのリンクを押すと、下フレームDの内容が変わるのですが、フレームが4つ(A,B,C,D)に分割される前に左フレームAのリンクを押してしまうと、新しくブラウザが開かれてしまいます(Targetがないため) そこで、URLを引数として、上下画面にフレーム分割をするソースに受け取った引数URLをフレームセットで実行できないかと考えました。 ・・・がサンプルなどをひっくり返しても、なかなかできません。 どなたかご教授していただけるととても助かります。 よろしくお願いいたします。

  • frameについての質問

    A.html を上のframeに B.html C.html を中央のframeに二つに分割して並列にならべて D.htmlを下のframeに ということで真ん中のフレームが2つに分かれている形です。 この形式のフレームはの形のタグはどうやってつくればいいでしょうか?

    • ベストアンサー
    • HTML
  • リンク毎にフレームセットの内容を変えたい

    まず、フレームを使用していないページがありまして(index.html)、そのページ上のリンクをクリックすると、フレームページに飛ぶのですが、クリックされたリンク毎にフレームセットの内容を変えたいのですが、なかなかいい方法が見つかりません。 もう少し具体的に説明させていただきますと、 ページ1(index.html)上の各リンクをクリック リンク1→A.hrml+B.html+C.htmlのフレームページ リンク2→D.html+E.html+C.html リンク3→F.html+G,html+C.html ・ ・ ・ という感じです。 なにか、良い方法がありましたら、教えていただけたらと思います。 どうかよろしくお願いします。

  • 親ページをリロードしたい

    フレームセットで三分割されたページから、ポップアップ画面を開き、そのポップアップ画面のボタンを押したときに、フレームセットの画面の一つを/testpage.htmlという感じで呼び出したいのですが、こんなことは可能なのでしょうか?IE6です。

  • フレームで区切られたウィンドウを閉じたい

    HTML,JavaScriptでの質問です。 Aの画面よりボタンのonClickイベントでBの画面を開いています。 Bの画面は親フレームがあり、上下にフレームを切っています。 Bの上フレームのボタンのonClickイベントでclose();を記述しているのですが、 フレームを切っているためにウィンドウが閉じないようなのです。 ※Bの上フレームだけを開き、ボタンを押すと閉じるので。 環境はWindows98,IE5.5です。 どなたか対応方法をご存知の方、よろしくお願いします。 Aのボタンでのイベント: onClick='subwin = window.open("B0.html","bbb");' Bのボタンでのイベント: onClick='close();'

    • ベストアンサー
    • HTML
  • フレームの表示と非表示の切り替え

    新しいWebページをフレームを使用して作成するのですが、表示切替で詰まっています。 フレームの構成は「まず上下に分割、その後下半分を3等分」という形なのですが、3等分された下半分(左からA、B、C)のうち、Cの表示・非表示を切り替える機能がほしいのです。具体的には「Cのリンク(ボタン)クリックでCが非表示になり、Bのリンク(ボタン)クリックで再度表示されるようにしたいのです。 どなたかご回答お願いします。

    • ベストアンサー
    • HTML
  • フレーム内から開いたサブウィンドウから親ウィンドウの別フレームの操作を行いたい

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

専門家に質問してみよう