- ベストアンサー
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」の両方が変わるようにしたいのですが、いい方法がありましたらどなたか教えていただけないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんにちは menu.html内での任意のコンテンツをクリックしたときに、top.htmlに表示されるファイルを指定するのではなく、「左フレームに○○.html、右フレームに△△.htmlを表示する」という命令を書き込んだ<frameset>ファイルをリンク先に指定してみればうまくいきます。 過去に回答した参考URLの質問と同じようなケースだと思うのですがあてはまりますでしょうか。 ukkey119さんの場合は画面が3フレームに分かれていると思いますが、紹介の質問ではフレームは2つです。 でもヘッダのフレームには変化がないので同じことだと思いますので一度試してみてください。
その他の回答 (2)
通常は、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が有効であれば、希望通りの動作が実現できると思います。 参考になれば幸いです。
お礼
回答いただきありがとうございます。 Javascriptの方法をためしたのですが、クリックすると「parent.top.location.href=i」のiのぺージしか反映されず、うまく出来ませんでした。 せっかく回答いただいたのですが、すみませんでした。
- junijuni
- ベストアンサー率25% (12/48)
参照先のものが参考になると思います。
お礼
回答いただきありがとうございます。 質問の仕方が悪かったみたいですが、私の希望していたのは、クリックすると、自ファイルを含めた複数のファイルが一度にジャンプする方法を知りたかったのです。 せっかく回答いただいたのですが、すみません。
お礼
回答いただきありがとうございます。 ページごとをジャンプさせるのではなく、フレームごとジャンプさせるのですね。 上記の通りにやってみたらうまくいきました。ありがとうございます。