• 締切済み

1度に複数フレームの表示が戻らない

フレームを上(name=index、メニューボタンを表示)に1つ、下の左側(name=sub_menu、サブメニューを表示)と、右側(name=honbun、本文を表示)に分けています。メニューボタンAを押すと、Aサブメニュー、A本文をリンク表示し、メニューボタンBを押すと、Bサブメニュー、B本文を表示するようにしました。が、そこからIEツールバーの「戻る」を押すとAサブメニューに戻ってB本文は残ったまま、もう1度「戻る」を押すとA本文も戻ってくれます。どうしたら1度にAサブメニュー、A本文に戻るのでしょうか?簡単な方法はありますか? <SCRIPT LANGUAGE="JavaScript"> function change_01(){ parent.honbun.location="honbun/A.html"; } function change_02(){ parent.honbun.location="honbun/B.html"; } ・ ・ </SCRIPT> <a href="sub_menu/sub_menu_A.html" target="sub_menu" onClick="change_01()"></a> <a href="sub_menu/sub_menu_B.html" target="sub_menu" onClick="change_02()"></a> ・ ・

  • CSS
  • 回答数3
  • ありがとう数4

みんなの回答

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

JavaScriptをちょっと工夫すればできますよ。 参考URLのページに解説があるので、詳細はそちらをご覧ください。 少し簡略化したサンプルを書きますので、コピー&ペーストして動作を確認してみて下さい。 # frame.html (サブメニューは location.replace を使って入れ替える) <HTML><HEAD><TITLE>フレーム連動サンプル</TITLE> <SCRIPT language="javascript"><!-- var loadedUrl; function loadSubMenu(url) { if (loadedUrl != url) { sub_menu.location.replace(url); loadedUrl = url; } } //--></SCRIPT> </HEAD> <FRAMESET rows="200,*"> <FRAME src="menu.html" name="index"> <FRAMESET cols="200,*"> <FRAME src="submenu_A.html" name="sub_menu"> <FRAME src="honbun_A.html" name="honbun"> </FRAMESET> </FRAMESET> </HTML> # menu.html (リンクするのは本文だけ) <HTML> <HEAD><BASE target="honbun"></HEAD> <BODY> <A href="honbun_A.html">Page A</A><BR> <A href="honbun_B.html">Page B</A><BR> </BODY> </HTML> # honbun_A.html(onLoadでサブメニューAをロード) <HTML><HEAD> <SCRIPT language="javascript"><!-- function loadSubMenu(url) { if (parent.sub_menu) parent.loadSubMenu(url); } //--></SCRIPT> </HEAD> <BODY onLoad="loadSubMenu('submenu_A.html')"> 本文A-1 <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <A name="2">本文A-2</A> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <A name="3">本文A-3</A> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> </BODY> </HTML> # submenu_A.html <HTML><HEAD><BASE target="honbun"></HEAD> <BODY> サブメニューA<BR> <A href="honbun_A.html">A-1</A><BR> <A href="honbun_A.html#2">A-2</A><BR> <A href="honbun_A.html#3">A-3</A><BR> </BODY> </HTML> # honbun_B.html(onLoadでサブメニューBをロード) <HTML><HEAD> <SCRIPT language="javascript"><!-- function loadSubMenu(url) { if (parent.sub_menu) parent.loadSubMenu(url); } //--></SCRIPT> </HEAD> <BODY onLoad="loadSubMenu('submenu_B.html')"> 本文B-1 <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <A name="2">本文B-2</A> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <A name="3">本文B-3</A> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> </BODY> </HTML> # submenu_B.html <HTML><HEAD><BASE target="honbun"></HEAD> <BODY> サブメニューB<BR> <A href="honbun_B.html">B-1</A><BR> <A href="honbun_B.html#2">B-2</A><BR> <A href="honbun_B.html#3">B-3</A><BR> </BODY> </HTML>

参考URL:
http://www.din.or.jp/~hagi3/JavaScript/JSTips/FrameCon.htm
arasma
質問者

お礼

ありがとうございました。焦っていたので、結局、1段階として上下だけのフレームをつくり、下のフレームには、別に左右のフレームのみのHTMLをメインメニューとサブメニューの項目分作ってしまいました。JavaScriptも使わないことになってしまいました。間違いなくサブメニューと本文が同時に戻ります。少し落ち着いたらこのやり方で更新してみようと思います。お礼が大変遅くなって申し訳ありませんでした。

  • 0011Allen
  • ベストアンサー率56% (108/192)
回答No.2

私も以前、同じ事を悩んだ事があって・・ メニューボタンがフレームセットにリンクするようにしたことがありました。 メニューで <A HREF="AFramset.html" Target="_top">MenuA</A> <A HREF="BFramset.html" Target="_top">MenuB</A> として AFramset.htmのなかに (COLSとROWS---省略) <Frame Name="index" src="Menu.html"> <Frame Name="sub_menu" src="Asub.html"> <Frame Name="honbun" src="Ahonbun.html"> BFramset.htmのなかに (COLSとROWS---省略) <Frame Name="index" src="Menu.html"> <Frame Name="sub_menu" src="Bsub.html"> <Frame Name="honbun" src="Bhonbun.html"> これって変かな?

arasma
質問者

お礼

この方法も考えていましたが、初期状態ではA本文にA-1本文を表示し、Aサブメニューで選択リンクしたA-3本文表示後に、メニューBボタンを押してB本文表示をして「戻る」を押すとA-3ではなくA-1本文が表示されてしまうのでダメだと思いました。やり方もう少し考えてみます。ありがとうございました。

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.1

一つのリンクで - アンカータグでメニュー部分を変更 - 次に JavaScript で本文部分を変更 という二つのアクションが発生しているので、戻るボタン一回で同時に戻る (2 アクション分戻す) 事は不可能です。 こういった場合、一般的に 1. A メニューと A 本文をフレーム内部に埋め込んだ <frameset> が書かれている HTML 2. B メニューと B 本文をフレーム内部に埋め込んだ <frameset> が書かれている HTML の二つを用意して、A を押したら 1 を _top に、B を押したら 2 を _top にリンクさせる方法を取らないと不可能です。

arasma
質問者

補足

回答ありがとうございます。やってみます。ちなみに、このような動作のまま、ホームページを公開されているところがあるのですが、許される範囲の動作だと思われますか?

関連するQ&A

  • JavaScript フレーム

    Javascriptをふたつ書くことはできないんですか? 2つ書いたら「い」のほうしか宣言されないんでどうしたらよろしいですか? Update.java,kensaku2.java syouhin_kensaku.html,syouhin_master.html <html> <head> <title>メニュー</title> </head> <body> <script type="text/javascript"> <!-- function jump(){ // 設定開始(表示するフレーム名とリンク先URLを設定してください) parent.hakusi.location.href = "syouhin_kensaku.html"; parent.hakusi2.location.href = "Update"; // 設定終了 } // --> </script> <a href="#" onClick="jump(); return false;">あ</a> <br> <br> <script> <!-- function jump(){ parent.hakusi.location.href = "syouhin_master.html"; parent.hakusi2.location.href = "kensaku2"; //設定終了 } // --> </script> <br> <a href="#" onClick="jump(); return false;">い</a> <br> <br> </body> </html>

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

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

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

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

  • フレーム構成の表示について

    現在、複数のクラブチームに所属しています。 クラブごとにHPを作成しており、見やすい様に フレーム型のHPを作成し参照できるように考えています。 現在作成しているのはこのような状態となっております。 ---------------------------------------------------------------------- ◆フレームセットのHTML <html><frameset cols="200,*"> <frame src="menu.html" name="_MENU"> <frame src="main.html" name="_MAIN"> </frameset></html> ◆メニューのHTML <html><body> <a href="club_AAA.htm" target="_MAIN">クラブA</a> <a href="club_BBB.htm" target="_MAIN">クラブB</a> <a href="club_CCC.htm" target="_MAIN">クラブC</a> </body></html> ◆メインのHTML 個々のHPを表示させるだけなので、中見は無し。 ---------------------------------------------------------------------- 基本的に表示はできるのですが、改善を考えている為、質問させてください。 クラブBのHPは初期表示状態ではセレクトボックスしか表示されていません。 セレクトボックスで選択し、onClickにてJacascriptで表示内容を制御しています。 そのため、今の状態では、  _MENUリンク押下⇒_MAINに表示⇒セレクトボックス選択⇒≪見たい内容が表示≫ となりますが、  _MENUリンク押下⇒_MAINに≪見たい内容≫表示 と一気に飛ばす事は出来ないのでしょうか?

  • フレームのある

    ホームぺージビルダー2001でホームページを作成していますが、フレームページの左側に目次、右側にその説明文を表示させ、homeをクリクした時にフレームページの左右を同時に変更したいのですが普通のリンクでは問題なくできたのにボタンリンクでは目次のページだけダブってしまい上手くいきません。 ソースは下記のように入力しております。 <B><FONT size="2"><A href="sub2.htm" target="_top"><FONT size="2" color="#000000">xxx</FONT></A></FONT></B></P> この表示の時は支障がありません。 ボタンにした下記のソースですと目次のほうだけがダブって表示されてしまいます。 <P align="center"><B><FONT size="1" color="#000000"><INPUT TYPE="button" VALUE="xxx" onClick="location.href='file:///C:/My Documents/homepage05/sub2.htm'" target="_top" color: #000000; background-color: #ffffff; border:ridge #999999;"></FONT></B> ホームぺージの過去の質問とかも見ましたが、どうしても上手くいきませんのでどなたかわかりやすく教えてください。

    • ベストアンサー
    • HTML
  • 複数フレーム同時リンクタグ

       A =======    B =======    C フレーム分けしたhtml名→top.html と、縦3分割されたHPを作った際に Aのフレーム内のリンクを押した際にtarget設定でB とCのフレーム内を同時に変更する方法を探しています HPの構造上、BとC部分に1つの新しいフレームページを設けて そちらのフレームサイトへリンクをさせるという方法はできないです あとJAVAスクリプトを使用した <SCRIPT TYPE="text/javascript"> <!-- function jump(){ parent.B.location.href = "B.html"; parent.C.location.href = "C.html"; という方法でできるそうなのですが 以前自分では HTML言語の<a herfの派生のようなタグで これが実現できていました このタグを知りたいのですが以前のデータ消失&検索してもなぜか引っかからずで困っております・・・ どなたか教えてください

  • ボタンを押したときに特定のフレームにページを表示するには?

    タグの知識が全然無くてすみませんが教えて下さい。 端末だけで紙芝居のように見てゆくHTMLを作っています。FrontPage2000を使っています。 上下にフレーム分割されていて、上のフレームがnavi、 下のフレームがcontentだとします。 このとき、naviにロードしたページ上にあるボタンを押したら、 contentにあるページをロードするようにしたいのです。 URLのリンクなら出来るのですが... ページ全体を開きなおすのは <input onclick="top.location='??.htm'" type="button" value="○○" name="B1"> でできたので、 <input onclick="content.location='??.htm'" type="button" value="○○" name="B1"> とか、 <input onclick="location='??.htm'" target='content' type="button" value="○○" name="B1"> とかしてみたんですがダメでした。 こういう場合どのようにしたらいいでしょうか。

    • ベストアンサー
    • HTML
  • HTMLフォームボタンによるターゲットフレームを指定したリンク

    上下にフレーム分割してあり、上をname="header",下をname="contents"としてあります。 head側のHTMLに記述したフォームボタンを押すと、親ウインドウ(target="_parent")に リンク指定先が展開されるようにしたいのですが下記の記述ではうまくいきません。 意図した親ウィンドウでなく、head側のフレーム内に展開されてしまいます。 <input type="button" name="01a" value="前へ" onclick="parent.head.location.href='../hoge1/1.htm'"> <input type="button" name="03a" value="目次" onclick="parent.head.location.href='../index.html'"> <input type="button" name="03a" value="次へ" onclick="parent.head.location.href='../hoge3/3.htm'"> 参考にしたのは以下ですが、何が誤っておりますでしょうか。よろしくお願い致します。 http://www.west-mira.jp/javascript/link/button2.html

  • iframeのターゲットの設定がうまくいかないので…教えてください。

    こんにちは。はじめまして、Alfaといいます。 ホームページを作成中、どうしてもうまくいかないことがあり、質問させていただきました。 早速ですが、 (1) main.htmlの中にiframeがあり、 main.htmlを開くとまず、a.htmlというものが表示されます。 (2) main.htmlの中のメニューボタンBを押すと、iframe内にb.htmlが表示されます。 (3) ページC(iframeなしの、全く違うページ)から B.htmlを表示させるように<リンク>をはりましたが、思い通りに動作しません。 <a href="main.html" onClick="parent.target.location.href='b.html'">リンク</a> と書いたのですが、main.htmlは開くのですが、a.htmlが表示されてしまいます。 b.htmlを開くためには、どうすればよいのでしょうか…。 どなたか教えてください。

  • フレーム

    こんにちわ。 今、フレームを用いてホームページを作成しています。 そのなかでJavascriptを用いて複数のフレームを同時に変更しようとしているのですが、 上手く出来ません。Javascriptの参考書等を見るとフォームボタンをクリックした時に 複数のページを変更する方法はよく載っているのですが、gifの画像をクリックした時に 複数のページを同時に変更したいのです。 ご存知の方がいらっしゃいましたらご返答をお願いします。 ちなみに、参考書等に載っていたフォームボタンをクリックする場合の方法を書いておきます。 フレーム名はf1,f2,f3としていて、f1内のフォームボタンをクリックするとf2,f3が変更される ものが載っていたのでその中のf1を書いておきました。 よろしくお願いします。 <HTML> <HEAD> <TITLE>F1.HTM</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangFram(P1,P2){ parent.f2.location.href=P1 parent.f3.location.href=P2 } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="CHANG"> <INPUT TYPE="button" NAME= "chang1" VALUE=" Change!! " onClick="ChangFram('FP2.HTM','FP3.HTM')"> <P> <INPUT TYPE="button" NAME= "chang2" VALUE=" 元に戻す " onClick="ChangFram('F2.HTM','FP1.HTM')"> </FORM> </BODY> </HTML>