• ベストアンサー

frameを使用したときのファイルの切り替え

 今、フレームを使用してHPを制作していますが、タグ例として、 <frameset rows="60,*" frameborder="no" border="0"> <frame src="header.html" scrolling="no" noresize> <frameset cols="200,*" frameborder="no" border="0"> <frame src="menu.html" name="menu" noresize> <frame src="top.html" name="top" noresize> </frameset> </frameset> と組み、上記の「menu.html」中に各コンテンツを羅列し、任意のコンテンツをクリックすると「top.html」は変わるという作りをしています。  これを、「menu.html」中の任意のコンテンツをクリックすると「menu.html」「top.html」の両方が変わるようにしたいのですが、いい方法がありましたらどなたか教えていただけないでしょうか? よろしくお願いします。

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#9692
noname#9692
回答No.2

こんにちは menu.html内での任意のコンテンツをクリックしたときに、top.htmlに表示されるファイルを指定するのではなく、「左フレームに○○.html、右フレームに△△.htmlを表示する」という命令を書き込んだ<frameset>ファイルをリンク先に指定してみればうまくいきます。 過去に回答した参考URLの質問と同じようなケースだと思うのですがあてはまりますでしょうか。 ukkey119さんの場合は画面が3フレームに分かれていると思いますが、紹介の質問ではフレームは2つです。 でもヘッダのフレームには変化がないので同じことだと思いますので一度試してみてください。

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=508355
ukkey119
質問者

お礼

 回答いただきありがとうございます。  ページごとをジャンプさせるのではなく、フレームごとジャンプさせるのですね。 上記の通りにやってみたらうまくいきました。ありがとうございます。

その他の回答 (2)

noname#199778
noname#199778
回答No.3

通常は、HTMLだけでは無理だと思います。 JavaScriptを使う必要があるでしょう。 HTMLだけで済ますのであれば、指定のページを初期状態で読み出す、フレームをセットするHTMLファイルを別に用意して、そのファイルを呼び出すという方法も取れると思いますが、手間がかかる上にファイル管理も大変になると思います。 JavaScriptを使う方法ですが、menuフレーム側にあるページのhead内に、 <script type="text/javascript"><!-- function dbljump(i,j){ parent.top.location.href=i; //topフレームのページ変更 location.href=j; //menuフレーム自体のページ変更(parent.menu.location.href=jでも可) } //--></script> 上記のソース、もしくは、 <script type="text/javascript"><!-- function dbljump(i,j){ window.open(i,"top"); //topフレーム内のページ変更 window.open(j,"_self"); //menuフレーム内のページ変更 } //--></script> こちらのソースを記述して、body内のリンクの方は <a href="#" onClick="dbljump('topフレームに表示させるファイル名','menuフレームに表示させるファイル名'); return false;">リンク</a> もしくは <a href="javascript: dbljump('topフレームに表示させるファイル名','menuフレームに表示させるファイル名');">リンク</a> このような感じで記述してみてください。 JavaScriptが無効な環境では動作しませんが、JavaScriptが有効であれば、希望通りの動作が実現できると思います。 参考になれば幸いです。

ukkey119
質問者

お礼

 回答いただきありがとうございます。  Javascriptの方法をためしたのですが、クリックすると「parent.top.location.href=i」のiのぺージしか反映されず、うまく出来ませんでした。  せっかく回答いただいたのですが、すみませんでした。

  • junijuni
  • ベストアンサー率25% (12/48)
回答No.1

参照先のものが参考になると思います。

参考URL:
http://www.openspc2.org/JavaScript/lib_/frame/fmmain.htm
ukkey119
質問者

お礼

 回答いただきありがとうございます。  質問の仕方が悪かったみたいですが、私の希望していたのは、クリックすると、自ファイルを含めた複数のファイルが一度にジャンプする方法を知りたかったのです。 せっかく回答いただいたのですが、すみません。

関連するQ&A

  • ブラウザによってフレームの表示が異なるのですが..

    はじめまして。 現在下記のような形のHPを制作しているのですが、フレームが難しくてなかなか進めません。 ブラウザやそれぞれの環境によって見え方が違ってしまいます。 私の環境では真ん中にぎゅっと詰まってスクロールが出てしまうような小さな見え方になってしまっています。 どの環境で見ても統一させるにはどのようにしたら良いのでしょうか。 ------------------------------ 上の固定バー ------------------------------ メニュー|内容     |     |     |     | ------------------------------ 下の固定バー ------------------------------ ソースは以下のように組みました。 <frameset rows="10%,*" cols="*" framespacing="0" frameborder="no" border="0"> <frame src="Margin/Index.html" scrolling="No" noresize title="topFrame"> <frameset rows="*,230" cols="*" framespacing="0" frameborder="no" border="0"> <frameset cols="215,*" frameborder="no" border="0" framespacing="0"> <frame src="Margin/Index.html" scrolling="No" noresize title="menuBarFrame"> <frameset cols="*,25%" frameborder="no" border="0" framespacing="0"> <frameset rows="64,*" frameborder="no" border="0" framespacing="0"> <frame src="topbar/topbar.html" scrolling="No" noresize title="topBarFrame"> <frameset rows="*,41" cols="*" framespacing="0" frameborder="no" border="0"> <frameset rows="*" cols="178,*" framespacing="0" frameborder="no" border="0"> <frame src="menu/menu.html" scrolling="No" noresize title="leftFrame1"> <frame src="top/top.html" name="main" title="topFrame"></frameset> <frame src="bottombar/bottomBar.html" scrolling="No" noresize title="bottomFrame1"> </frameset> </frameset> <frame src="Margin/Index.html" scrolling="No" noresize title="rightFrame"> </frameset> </frameset> <frame src="Margin/Index.html" scrolling="No" noresize title="MenuBarFrame"> </frameset> </frameset> <noframes> ------------- また、現在フレームは推奨されないのも知っているので、 オススメの組み方がありましたら教えていただけませんでしょうか。 HTML等に関してまったくの初心者ですので、判り易く教えていただけたら大変有り難く思います。どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームページが崩れる。。。

    フレームページを使っているのですが、見る人によってはページの一部が切れて 見えない部分もあるらしいです。ブラウザの大きさを変えてもレイアウトだけは 崩さない為には、どこにどんなタグが必要なんですか? 現在のフレームの親ページのソースです。 <FRAMESET rows="30%,70%" frameborder="NO" border="0"> <FRAME src="ue.html" scrolling="NO" noresize> <FRAMESET cols="20%,80%" frameborder="NO" border="0"> <FRAME src="side.html" scrolling="NO" name="menu" noresize> <FRAME src="main.html" name="main" noresize> </FRAMESET> <NOFRAMES>

    • ベストアンサー
    • HTML
  • フレームの大きさを変更する 等

    index.htmlにフレームが定義してあります。 右・中央・左と言う感じで3つに区切っています。 <FRAMESET COLS="130,*,130" border="0"> <FRAME name="left" src="left.html" scrolling="no" frameborder="0" noresize> <FRAME name="main" src="main.html" scrolling="auto" frameborder="0" noresize> <FRAME name="right" src="right.html" scrolling="no" rameborder="0" noresize> <NOFRAMES> <BODY> <P>このページはフレームを使用しています<br>フレーム対応ブラウザーで閲覧してください。</P> </BODY> </NOFRAMES> </FRAMESET> これを、例えば中央のページのリンクをクリックすると、 フレームのサイズを変更することは可能なのでしょうか。 例 最初:<FRAMESET COLS="130,*,130" border="0"> ↓ サイズ変更リンクをクリック ↓ 変更後:<FRAMESET COLS="200,*,0" border="0"> このような感じです。 すみませんが、ご存知の方がいらっしゃいましたら、 ご教授をお願いします。 もしもよろしければ、簡単なサンプルコードもつけていただければ嬉しいです

  • フレームが固定できない

    Dreamweaverで左固定メニューで右にメインフレームがでるものをつくっています。 プレビューでみると画面の大きさを大きくすると左フレームと右フレームのあいだに白い余白ができ、画面を小さくするとその間が交差しながら小さくなります。 noresizeをいれているのですが、これがなおりません!画面の大きさをかえても右フレームと左フレームの境界線をなしにしたいのですがどうしたらいいのでしょう。 ちなみにコードはこうなっています。 <frameset rows="*"cols="245,900" frameborder="no" border="0"> <frame src="menu/menu.html" name="leftframe" frameborder="no" scrolling="no" noresize="noresize" marginwidth="0" marginheight="0" id="leftframe" border="0"/> <frame src="welcomephoto.html" name="mainframe" frameborder="no" noresize="noresize" marginwidth="0" marginheight="0"id="mainframe" border="0" /> </frameset> <noframes><body> </body> </noframes></html>

  • フレームがきれいになりません。

    下記のように上と、左右で3フレームを分けて表示していますが、 <frameset rows="60,*" border="0" frameborder="0" framespancing="0"> <frame src="title.html" name="head" scrolling="no"> <frameset cols="130,*" border="0" frameborder="0" framespancing="0"> <frame src="menu.html" name="menu" scrolling="auto"> <frame src="cont.html" name="main" scrolling="auto"> </frameset> </frameset> *で表示しても、左のフレームの下にスクロールバーが出てしまいます。どのようにすれば直るのか初心者のため分からなくて困っています。もし分かる方是非教えてください。 現状はこんな感じになってしまっています↓ http://www.twinklecloset.com/index.html

  • 画面の四分割の方法について

    教えていただきたいのですが、↓で作成した画面の最下部にbottom(titleと同じ幅で画面の下部)を作りたい場合は、どのように追加記述すべきなのでしょうか? いろいろ試しているのですが上手くいかないのです(汗 <frameset rows="90,*" border="0" frameborder="0" framespacing="0"> <frame name="title" src="title.html" scrolling="NO" noresize> <frameset cols="180,*" border="0" frameborder="0" framespacing="0"> <frame name="menu" src="menu.html" noresize> <frame name="body" src="body.html"> </frameset> </frameset> 宜しくお願いいたします。。。

    • ベストアンサー
    • CSS
  • 改・キーボードナビゲーション

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=762151 にて質問し、解決したに見えたのですが、確認もせず閉じた為、再度投稿させて下さい。 ページトップにフレームファイルを置き、 <frameset cols="250,*" frameborder="0" framespacing="0"> <frameset rows="16,*" frameborder="0" framespacing="0"> <frame src="***.html" name="0" SCROLLING="NO" NORESIZE> <frameset rows="25,*" frameborder="0" framespacing="0"> <frame src="***.html" name="1" SCROLLING="NO" NORESIZE> <frameset rows="51,*" frameborder="0" framespacing="0"> <frame src="***.html" name="2" SCROLLING="NO" NORESIZE> <frame src="***.html" name="3" SCROLLING="NO" NORESIZE> </frameset> </frameset> </frameset> <frame src="***.html" name="4" SCROLLING="NO" NORESIZE> </frameset> とします。 NAME“0”のページがメニューで、ここをクリックするとNAME“1”に開かれる仕組みです。 NAME0に、 function checkNavigation() { if(event.keyCode==49)location.href="NAME1に開くページ"; } window.document.onkeydown = checkNavigation; と書きます。 前投稿では、「1.location.~」とすればOKだとなっていたのですが、確認した所何故か機能しませんでした。 NAME0をアクティブページにして“1”を押下してみたり、試して見たのですが駄目でした。 どうしたら良いのでしょうか。お願いします。

  • フレームで表示すると

    自分でフレームを組んだのですが、 IEだと大丈夫だったのですが、 NN4.7で崩れてしまいました。 フレームの間に白い線が入ってしまいます。 原因がわからず、ここに質問しております。 一つの画像を縦3つに分け、真ん中は横3つに分け、 合計5マド構成のフレームにしたいと思っています。 インラインフレームのような感じです。 インラインフレームだとNNでは表示されないので、 このような形にしようと思いました。 下記のようなソースでは何か問題があるのでしょうか。 教えてください、宜しくお願いします。 <frameset rows="*,*,*" frameborder="0" framespacing="0" border="0"> <frame src="top.htm" marginwidth="0" marginheight="0" scrolling="no" noresize> <frameset cols="*,*,*" frameborder="0" framespacing="0" border="0"> <frame src="midddle_left.htm" marginwidth="0" marginheight="0" scrolling="no" noresize> <frame src="midddle_midddle.htm" marginwidth="0" marginheight="0" scrolling="yes" noresize> <frame src="midddle_right.htm" marginwidth="0" marginheight="0" scrolling="no" noresize> </frameset> <frame src="bottom.htm" marginwidth="0" marginheight="0" scrolling="no" noresize> </frameset>

  • フレームすくローリング有り/無し

    こんにちわ だいぶ前に登録してから、久しぶりに 質問させて頂きます。  フレームページの作成をしております。  右がメインで、左がメニューの一般的なものですが、  左のメニューフレームについて、、、 縦幅はスクロール有り 横幅はスクロール無しにし、幅を固定したいのですが HTMLタグ辞典や調べて探しきれませんでした。 既に同じ質問が出ていたら申し訳ありません、 何卒宜しくお願い致します。  現在 indexのタグは以下のとおりです。 --------------- <frameset rows="*" cols="150,*" frameborder="NO" border="0" framespacing="0"> <frame src="left_frame.htm" name="leftFrame" scrolling="auto" noresize>  ↑↑↑↑↑↑↑↑ auto にすると、横も縦も  スクロール出てしまいます;_; <frameset rows="82,*" cols="*" framespacing="0" frameborder="NO" border="0" Marginwidth="5"> <frame src="frame_above.htm" name="topFrame" scrolling="NO" noresize> <frame src="main.htm" name="mainFrame"> </frameset> </frameset> <noframes><body> ---------------

  • 横スクロールバーについて

    Dreamweavwe8にて作業しています。 製作した画面はフレーム構造のメインコンテンツを表示する部分なのですが、フルCSSにて製作、確認画面でその画面だけを表示すると縦スクロールだけが表示され、横スクロールは通常時は表示しませんが、 INDEXを立ち上げ、フレームの一部としてみた時、横スクロールが表示されます。 それは、縦スクロールが消えるサイズまで広げると消えるのですが、縦スクロールがある間は表示されます。 ページの設定でスクロールは自動にしてあります。 フレームの設定は、 <frameset cols="166,*" frameborder="NO" border="0" framespacing="0"> <frame name="leftFrame" noresize scrolling="NO" src="menu.html"> <frameset rows="135,*" cols="*" frameborder="NO" border="0" framespacing="0"> <frame name="topFrame" noresize scrolling="NO" src="header.html" > <frame name="mainFrame" src="top.html"> </frameset> </frameset> としてあります。 ここで何か設定が必要なのでしょうか? 私が困っているのはtop.htmlのところです。 解りにくくてすいませんが、よろしくお願いします。

専門家に質問してみよう