• ベストアンサー

リンク先がフレームセットの場合で・・・

A.htmlというページからB.htmlにというページの中盤にある記事Xにリンクする場合 <a href="B.html#X">記事Xへ</a> と書きますよね? では、A.htmlページからフレームセットB.html(フレームはC.htmlとD.htmlに分かれている)、にリンクしてフレームDの中盤にある記事Xを表示させる方法はあるのでしょうか? わかりにくい文章ですみませんが御願いいたします

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

  • ベストアンサー
  • westpoint
  • ベストアンサー率35% (173/482)
回答No.5

うわ、もう一発間違い・・・ × if (self.name != 'dframe'){document.links.[0].click();} ○ if (self.name != 'dframe'){document.links.[0].click();}} カッコの閉じ忘れでした。m(_ _)m

x_hig
質問者

お礼

ありがとうございました やはりJavaScriptの出番でしたか。 Java Scriptはまだ、勉強中なので、 できればHTMLだけでできればなぁと甘い期待したのですが あまかったですね。 しかし、JSでどうすればいいのかまったくわからなかったのが、コードまで書いていただいたので、解決できました。 ありがとうございました。 これからは、精進いたします

その他の回答 (4)

  • westpoint
  • ベストアンサー率35% (173/482)
回答No.4

すみません、間違えました。 一番下のソースですが、 × <a href="E.html" style="text-size:1px;">.</a> ○ <a href="B.html" style="text-size:1px;">.</a> です。

  • westpoint
  • ベストアンサー率35% (173/482)
回答No.3

ちょっと難しいですが、Javascriptを使ってやれないことはありませんね。 まず、ダミーファイルを作っておきましょう。 E.htmlとして・・・ </head> <script type="text/javascript"> <!-- location.href=parent.document.referrer; //--> </script> <noscript> <meta http-equiv="refresh" content="0;url=./D.html"> </noscript> <body bgcolor・・・・> 前後は適当にどうぞ。 そして、B.htmlは <frameset cols・・・> <frame src="C.html" name="cframe"> <frame src="E.html" name="dframe"> </frameset> としておきます。 で、A.htmlからは<a href="D.html#x">とします。 そして、D.htmlには <script type="text/javascript"> <!-- function frameChange(){ if (self.name != 'dframe'){document.links.[0].click();} //--> </script> </head> <body onLoad="frameChange();"> <a href="E.html" style="text-size:1px;">.</a> とすればいけると思います。 === つまり、A.htmlで、直接D.htmlの目的のアンカーを呼び出します。そして、それがフレーム内に表示されていなかったら、ダミーリンクをクリックしてB.htmlと入れ替わるわけです。 E.htmlは、自分の親フレーム(B.html)を呼び出したファイル(D.html#x)とlocation.hrefで差し替えられると言う手順です。 スクリプトの確認はしていないので、間違っていたら適宜デバッグして下さい。m(_ _)m

  • westpoint
  • ベストアンサー率35% (173/482)
回答No.2

ちょっと補足です。 b.htmlで、 <frameset cols・・・> <frame src="c.html" name="cframe"> <frame src="d.html" name="dframe"> </frameset> としておいて、 <a href="d.html#x" target="dframe">テキスト</a> とすればOKです。

x_hig
質問者

補足

説明が足りませんでした。 a.htmlにはフレームセットが無い状態です。 そこから、 <a href="d.html#x" target="dframe">テキスト</a> とリンクすると d.html#xのみが表示されますよね。 a.htmlはフレームセットの無い状態から フレームセットとして、b.htmlを表示しつつ d.htmlフレームの中身を記事xの位置から表示させる ということができるのでしょうか? 説明が下手ですみませんが宜しく御願いいたします。

  • westpoint
  • ベストアンサー率35% (173/482)
回答No.1

フレームを定義しているHTMLで、それぞれのフレームに名前を付けておきます。 で、<a href="B.html#X" target="フレームの名前">記事Xへ</a> でOKです。

関連するQ&A