- ベストアンサー
HTMLフレームセット中のNAMEタグにリンクしたいのですが。
あるドキュメントから、AB2つのドキュメントからなるフレームセットのBのなかのNAMEにジャンプしたいのですが、方法がわかりません。 ずぶの素人の、ぼくの知識では、フレームセット自体にリンクするか、BのNAMEにリンクすることしかできません(フレームが開かない!)。 フレームを表示した上で、BをNAMEの位置までスクロールして表示したいのですが、どうすればいいのでしょう。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
私の経験上ですが、残念ながらHTMLだけでは単一の頁から2分割のフレーム頁の片方に位置指定をしてリンクを飛ばすのは不可だと思います。 もしかしたら…JavaScriptを使えば可能かもしれません。 JavaScriptに関してそこまで知識がないので…参考までにオススメのJavaScript講座サイトを紹介しておきます。
その他の回答 (4)
- nana_ko
- ベストアンサー率19% (89/467)
よくわからないので補足をお願いします。 単一の頁から2分割のフレーム頁の片方に位置指定をしてリンクを飛ばしたいってことですか? 単一頁→フレーム頁(ただし、片方頁は指定した位置pointを表示)だとしたら、HTMLだけでは不可だと思われます。 単一の頁(sanple.html)からフレーム頁(frame.html)に飛ぶということは外枠(frame.html)にリンクしているだけなのでフレーム内の頁(b.html)にリンクしているわけではありません。 なので、<A HREF="b.html#point">という位置指定のリンクは使えないことになると思います。 HTMLだけでしようとすると、一度フレーム頁に飛んで、それからもう一度リンクする必要があると思います。
補足
やりたかったのは、おっしゃるとおりのことです。 基本的に単一ページでHPを作っていますが、注釈のようなページ(必ずしも注釈だけの内容ではない)だけ、フレーム内の目次とその本文をフレームで構成しています。 他の単一ページから、必要に応じてフレーム本文中の項目を参照できるようにしたかったのですが、無理なんでしょうか。
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは、No.1のarukamunです。 原因はフレーム分けしているhtmlファイル側にある可能性があります。 全部を補足するのも何ですので、 <FRAMESET>~</FRAMESET> の所だけで良いと思いますので、補足してください。
補足
たびたびのフォロー、ご親切にありがとうございます。 フレームセットの中身は、PageMillというMACのHP作成ソフトによるもので、下記のようになっています。(ファイル名とNAMEだけ、ぼくの質問とお答えの文脈にそって書き換えました)。 <FRAMESET FRAMEBORDER=1 BORDER=1 COLS="28%,72%"> <FRAME SRC="a.html" NAME="frame_a" SCROLLING=YES> <FRAME SRC="b.html" NAME="frame_b"> <NOFRAMES> <BODY> このページを見るのにはフレームの表示ができるブラウザが必要です。 </BODY> </NOFRAMES> </FRAMESET> ぼくの質問の書き方が悪かった気がするのですが、リンク元のドキュメントはフレームのない単一のページで、リンク先のフレーム内のドキュメントとは別のディレクトリにあるファイルです。 TARGET="frame_b"とすればよいとのお答えですが、このリンク(単一ページのドキュメント→b.html)には、NAME="frame_b"が宣言されている「フレームわけファイル」がまったくかかわっていないように思えますが、そんなことはないのでしょうか。(ぼくがもし、ブラウザだったら、「いきなりframe_bといわれても、なんのこっちゃ?」みたいな気がするような・・。htmlのことがまったくわかっていないので、ピントはずれかもしれません。申し訳ありません)。 よろしくお願いいたします。
- mousengoke
- ベストアンサー率50% (197/388)
TARGET="../pass/frame.html#frame_b" ではなく TARGET="frame_b" のままでいいんです。
補足
最初は、そのようにしてみたのですが、やはりTARGETが無視されてしまいました。 FRAMEで指定したフレームを明示する必要があるのかな、と思い、パスを付け足してみました。 いまのところ、どうしてもフレームが開きません。ほかの部分でつまらないケアレスミスをしているのかもしれませんが・・。
- arukamun
- ベストアンサー率35% (842/2394)
こんばんは まず、フレーム分けをしているhtmlファイルで、 <FRAME SRC="a.html" NAME="frame_a"> <FRAME SRC="b.html" NAME="frame_b"> とかフレームに対して名前を付けていますよね。 またリンクでは、 <A HREF="a.html>ドキュメントA</A> <A HREF="b.html>ドキュメントB</A> とかリンクを張りますよね。 では、リンクしたページをクリックすると、指定したフレームに表示させる場合、 <A HREF="b.html" TARGET="frame_b">ドキュメントBをフレームBに表示</A> といった様にします。 この様にTARGET=でフレーム名を書いてあげます。 次に、b.htmlの<A NAME="point">にリンクを張るには <A HREF="b.html#point" TARGET="frame_b">ドキュメントBをフレームBに表示して、ポイントまで移動</A> といった様にすれば良いでしょう。
補足
はやばやと、しかも、丁寧に説明していただき、ありがとうございます。 リンク先が別のディレクトリ(兄弟)なので、ご説明を参考に次のようにしてみたのですが、b.htmlのpointへのジャンプはうまくいくのですが、単独で開いてしまい、フレームが開きません(TARGETが無視されてしまう)。なにがいけないのでしょうか。 フレームわけのファイルをframe.htmlとして・・ <A HREF="../pass/b.html#point" TARGET="../pass/frame.html#frame_b">
お礼
たびたびありがとうございます。 ご紹介いただいたサイト、わかりやすそうで、いいですね。 htmlの知識がこのような状態で、Javaどころでもない感じですが、これを機会にひもといてみようかな、とも思います。