- ベストアンサー
固定フレームのついたフレームページにリンクするには?
メモ帳でホームページを作っています。初心者です。 メニューページにはフレームを使わず、 コンテンツ用ページを二つのフレームを使って、上部に各コンテントファイル、下部にメニュー(各コンテント名を一覧表示)が表示されるようにしています。下部フレームは固定フレームにしたいと思っています。 メニューページで各コンテント名をクリックしたとき、 上部にそのコンテントファイル、下部に固定メニューファイルの表示されたフレームページへリンクさせたいのですが、この方法がわかりません。 初めは、フレームページにアドレスを付けてリンクすればいいのよねー、と試みたのですが、そうすると全てのフレームページ、つまり上部フレームにそれぞれのコンテンツファイルが表示され、下部にメニューファイルが表示されたフレームページのひとつひとつにアドレスをつけないと、リンクできないのでは?と疑問がわきました。 しかし、それではフレームページの固定メニューファイルの各コンテント名をクリックしたときに、上部フレームにはコンテンツファイルのみでなく、各コンテンツのフレームページが表示されてしまい、下部の固定フレームが増えていって(泣)変なことになってしまいますよね。 フレームページ間のリンクは、その固定フレームの各コンテント名のtargetを上部フレーム名にすればよいので問題ないのですが・・・。 メニューページもフレームページにすれば解決するでしょって感じですが^_^;、メニューページには各コンテント名が載せてあるのに下にも同じ項目を並べるのはくどい気がして、ちょっと・・・と思いまして。 ご存知の方よろしくお願いします!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
私が質問内容を取り違えていなければの話ですが… トップページからのリンクで各コンテンツを開くことができるようにしてあって、その時にフレームも同時に切るようにしたいのであれば、フレームを切るファイルは、コンテンツの数だけ用意しておく必要があると思います。 そうしないと、フレームが切れませんよね? それで、下部のメニューフレームからのリンクですが、これはコンテンツの内容を記述してあるファイルを直接呼び出せばよいでしょう。 フレームセットHTMLで、上部フレームに呼び出すファイル名を記述していると思いますが、その上部に読み出すファイル名をダイレクトに、下部のメニューフレームのページのリンクに記述すれば問題ないはずです。 メニューフレームのページから、トップページで呼び出すフレームセットのファイルを呼ぶ必要はありません。 具体例を挙げれば、フレームを切るファイルA、Bがあるとしします。 ここで、Aでは上部フレームにa、下部フレームにmというファイルを読み出し、Bでは上部フレームにb、下部フレームにm(mは前者と同じ)を読み出すとします。 ここで、aのファイルのコンテンツをAa、bのファイルのコンテンツをBbと呼ぶことにします。 トップページからコンテンツAaを開く時は、フレームを切るためにファイルAを呼び出します。 Bbを開く時も同様に、ファイルBを呼び出せばよいでしょう。 ここまでは解りますよね。 で、メニューフレームのファイルmからは、コンテンツAaを読み出すときには、上部フレームにファイルaを直接読み出せばよいです。 フレームを切るAを呼ぶ必要はありません。 コンテンツBbを読み出すときも、上部フレームにbファイルを読み出せばよいです。 これでご理解いただけるでしょうか? なお、フレームを切るファイルは、トップページからリンクを開く場合のために複数用意する必要があると思いますが、このときのフレーム名がすべてのファイルで統一されていることは最低限必要だと思います。 一応、念のため。 参考になれば幸いです。 見当違いでしたら、ごめんなさい。
その他の回答 (3)
#2です。 再び失礼します。 解決済みのようなので蛇足かもしれませんが… お礼の中のコンテンツのフレーム内にメニューフレームからファイルが読み出せないという部分がちょっと謎ですね。 メニューフレームのリンクの、href属性の指定は間違っていませんか? 別のディレクトリにあるファイルなのに、ファイル名だけが書いてあって該当のファイルが見つからないとかではないでしょうか。 そうでないとしたら、ちょっと不可解ですね。 通常、フレーム内にフレームセットのHTMLを呼び出すと、重複してフレームが切られると思います。 ご質問にあるような心配が、実現してしまうことになると思います。 ただ、うまくいっているんですよね??? 傍目には、非常に謎なんですが…(^_^;) もしかして、target指定を「target="_top"」にしているということはありませんか? このtarget指定での「_top」は特別に用意されている値で、フレームを切ってある状態から、フレームをすべて解除した状態で次のページを読み出す動作になります。 逆手に取れば、フレームを解除してフレームを切りなおすという形にもできるので、これもフレームが重複しないようにする対策として使えるともいえますが… 蛇足でした。 失礼しました。
お礼
どういうわけか、再起動したらフレーム内にフレームセットのHTMLを呼び出すと、重複してフレームが切られると言う通常の結果に戻っていました。 なので、ちゃんとメニューフレームから呼び出すのは上部フレームのファイル名に直したところ、正しく表示されました。 一時的な不調?だったのでしょうか?? target名は"ue"にしていましたので大丈夫でしたよ。でも"top"にそんな機能があることは知りませんでした!勉強になりました! 重ね重ね、ありがとうございました!
こんにちは。 文章だと状況が分かり難いですね。 ------------------------------------ *下の項目をクリックすると ここにコンテンツが表示される ------------------------------------ ○○について 日記 掲示板 リンク ------------------------------------ こういうことですか? 例えば、上記画面で「日記」をクリックしたときに月のリストが出てきて3分割画面になるようにしたいのでしょうか?
補足
ほんと、質問がわかりづらくて申し訳ありません。 質問内容は2番目の回答者の方が答えてくださったようなことなんです。 つまり、トップページは ・・・・・・・・・・・・・・・・・・・・・・・・・ ★title★ 1.○○について 2.日記 3.掲示板 4.リンク ・・・・・・・・・・・・・・・・・・・・・・・・・ のようになっていて、たとえばリンクをクリックすると、 massasoytさんが描いてくださったようなページに飛ぶ(上部フレーム内はリンクの内容)。 さらにこのページで日記をクリックすると上部フレームに日記のページが表示される、下部のフレームはそのまま(画面は二分割のまま)。 という風にしたかったんです。 私がわからなかったのは、トップページからmassasoytさんが描いてくださったようなページに飛ぶ、というところです。「フレームを切るファイルは、各コンテンツごとに用意する」ことを知らなかったんです^_^;。 図まで描いていただいてありがとうございます! 質問内容が伝わりましたでしょうか?
- osamuy
- ベストアンサー率42% (1231/2878)
下にメニューがあるのだから、別ページでメニューを持たす必要がないのでは。 逆に、詳細な内容がのっていて、訪問者が興味あるコンテンツをクリックしやすいようにするための意図を持たせているページなら、上部フレームに表示させる形でも良い(その場合下部メニューは迷子にならないためのナビゲーション用として機能させる。)ように思えます。 質問の実現法としては、 上部フレームのソースURLをクエリ・ストリングで指定できるJavaScriptコードを記述したフレームセット・ページにするとか、方法はいろいろ。
お礼
初心者なので、クエリ・ストリングとかまだわからないんですが・・・^_^;。 方法はいろいろあるんですね。もっと勉強してみます!
お礼
>トップページからのリンクで各コンテンツを開くことができるようにしてあって、その時にフレームも同時に切るようにしたい >このときのフレーム名がすべてのファイルで統一されていることは最低限必要 そうです!それがしたかったんです。わかりづらい文を読み取っていただきありがとうございます。 >フレームを切るファイルは、コンテンツの数だけ用意しておく必要があると思います。そうしないと、フレームが切れませんよね? なるほど、そうですよね。言われてみれば、納得。 早速ファイルをつくりました。 >トップページからコンテンツAaを開く時は、フレームを切るためにファイルAを呼び出します。 Bbを開く時も同様に、ファイルBを呼び出せばよいでしょう。 呼び出せました!解決です! >メニューフレームのファイルmからは、コンテンツAaを読み出すときには、上部フレームにファイルaを直接読み出せばよいです。 フレームを切るAを呼ぶ必要はありません。 コンテンツBbを読み出すときも、上部フレームにbファイルを読み出せばよいです。 私もそう思ってファイルa,ファイルbをダイレクトに読み出したんですが、なぜか表示できないんです。 ためしにフレームを切るファイルAを呼んでみたら正常に表示されました。メニューフレームが下にどんどん重なってしまうと思ったんですが、大丈夫なんですよね。 ??? でも問題は解決です(^^)! 丁寧なお返事本当にありがとうございました。