すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

HP作成詳しい方お願いします。
フレームでのリンクについてです。

現在、上下でフレームを分け、上にメニューを作っています。

① A B C D
 ―――――――
     ②

という状態です。(A~Dはリンク)
①にあるリンクを②に表示させたいのですが、
どのリンクも、target="②"にしてあり、②に表示することができます。
<a href="aaa.html" target="②">あいうえお</a>
しかし、トップからA、トップからB、…という風にトップからは②に指定通り表示はされるのですが、
トップからAに行った後Bをクリックしても②にはAが表示されたままでリンク移動してくれません。
他も全て同じで、トップからのリンクでは全て②に表示されるのに、
いったん別のリンクを経由してしまうと、次のリンクをクリックしても移動することができません。

全て②へのリンクが可能であるのに何故、
続けて移動しようとすると不可能なのか…。
ターゲット指定もあっていて、タグにおかしな点はありません。
詳しい方いられましたらよろしくお願いします。

  • 質問者:作成者
  • 質問日時:2009-01-16 13:33:03
  • 1

回答してくれたみんなへのお礼

何度もありがとうございました!
メモ帳をhtmlで保存しPCで見たところ、やはり何の問題もなかったようで、
全て連続してリンクの移動ができました。
ということは、レンタルしているところの仕様…?なのかは分からないのですが、
そのURLでだけ、リンクが連続移動できない…という現象が起こっているように思えます。
なので、先程レンタル元にこのURLで移動できない旨を問い合わせてみました。
これで解決してくれると良いのですが…。
もし対応してもらえなかったらまたソーダに出没するかもしれません…。
そのときはまたぜひお願いします>< 逃げないで~…(笑)

色々とありがとうございました!

違っていたら書き直します。ご質問の状態であれば本来ならば全く問題なく動作するはずですので念のためお聞きしますが、フレームに名前は付いているでしょうか?。

<FRAME src="aaa.html" name="test2">

こんなかんじです。<a href="aaa.html" target="test2">あいうえお</a> と書けば、test2の名前の付いたフレームに表示されるのです。トップからは正しく表示されるのは、<FRAME src="aaa.html">となっているからですが、name="test2"が抜けていたりフレーム名に重複があると、その様な状況になる事が有ります(ブラウザの仕様により動作は変わるかと思いますが)。

もし既にその様に正しく記述されていたら、御免なさい。もう少し原因を探ってみます(一旦回答を削除して検討しなおしてみます)。

あと、丸付数字はMac等の機種では読めない人も出てくると思うので(1)とか書いた方が良いかと思います。

===補足===
了解しました。

う~ん、無反応と言う所が引っかかるんですよねぇ…^^;…どこか全然別の所に表示されてしまうのならば分かるのだけど。リンクそのものが機能していないと言う可能性は無いかしら?←可能性は低そうだけど、チェックの為に試しにtarget無しでリンクをクリックした時に自分自身のフレーム内に表示されればリンクは正しく機能しています。

或いはtarget="_blank"としておくと新規にウィンドウが開かれます。もし開かない場合はリンクがおかしくなっているかも(ファイルが無いとかパスが違うとかfile:///とかのままでサーバにアップされているとか)。

試しに私が作ってみたサンプルですが

フレーム頁のHTMLソース。
<FRAME src="links.htm" name="test1">
<FRAME src="aaaaa.htm" name="test2">


これで上半分の領域にはtest1、下半分の領域にはtest2と言う名前が付きます。私の環境のIE6では上半分の領域に名前が無くても動作しましたが、できれば名前が付いていた方が安全かと思います。

その上半分の領域にリンクを集めたファイルlinks.htmを呼び込みます。そのtest1フレームの中に置いてあるフレームの中のリンクを置いたHTMLソース(links.htm)は…

<A href="../aaa.htm" target="test2">aaaaa</A>
<A href="../bbb.htm" target="test2">bbbbb</A>
<A href="../ccc.htm" target="test2">ccccc</A>

こんな感じです。これで下側のtest2と言う所にリンクした内容が表示されます。

ちなみにtarget="_top"で全画面表示の指定になるのでtopと言う名前は拙いかも。他にはblank(新しいウィンドウ)とかparent(親)も。

# 1回しか補足が出来ないので次回の返信を頂いた時に解決していなかったら、一旦回答を削除して新たに書き直します。お手数をおかけして申し訳ありません。解決できなかった場合は、そのまま消えてしまうかも知れません…^^;。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

名前はついています。 <frame src="top.html" name="top"> 質問内容と重複しますが、それぞれのリンク自体は下にちゃんと表示されます。 しかし、Aを表示させたまま次にBのリンクをクリックすると無反応、という状態です。 name="test2" の部分は、上ページのそれぞれのリンクタグにも必要…ということでしょうか? ややこしくてすみません。 色んなタグサイトや、他のフレーム仕様のサイトのソースなども拝見させてもらったのですが、 target=""部分の記載など自分と同じで、他にリンクタグで変わったものもない為、何がダメなのかが分からない状態です><


●追記●
お礼の編集で気付いていただけるか分からないのですが、補足使っちゃうともう質問できなくなっちゃうので・・・
気づいていただけることを願います><

>リンクそのものが機能していないと言う可能性は無いかしら

下には表示されるのですが念のためtarget無しでリンクしてみましたが、
リンクは生きていました。
書いていただいたhtmlも、実際にやっているものと同じで、やはりタグに間違いはないようです。
(topは、分かりやすいかなと思ってつけただけで、実際は別の名前です)

リンクはできるのに連続移動できないのは、他のタグが影響していたりする可能性はあるでしょうか?
念のため、ページ全体関係で使っているタグだけ書いておきます。

<style type="text/css">
<!--
a{text-decoration:none}--></style>
<style type="text/css">
<!--
a:hover { background-color :ffe680; }
--></style>
<style type="text/css">
<!--
body {
background-image: url(title.jpg);
background-repeat: no-repeat;
background-position: left top;
}
-->
</style>
<STYLE TYPE=text/css>
<!--body{cursor:crosshair;}-->
<!--A:hover{cursor:hand;}-->
</STYLE>

関連する質問・相談

Sooda!からのお知らせ

一覧を見る