web-dev-qa-db-ja.com

アンカー名がURLにスラッシュを追加するのはなぜですか?

私はいくつかの最も基本的なHTMLであるべきであることをやろうとしていますが、それは私のために働いていません。これが私のコードです:

<a name="rocket"></a>
<div>
<h3>The Title</h3>
<p>some text</p>
</div>

私は連絡先ページを正しいセクションに飛ばすためにアンカー名を使いたいのです。

このように連絡先ページ内のリンクを使用すると、

<a href="#rocket">click here</a>

それはうまくいきます。しかし、私は別のページから来て、そして次に飛ぶことを望みます。だから私はこれを使っています:

<a href="http://mysite.com/contact#rocket">click here</a>

しかし、それは連絡の後にスラッシュを追加して http://mysite.com/contact/#rocket にリダイレクトするように見えます、それはそれが飛ぶのではなく連絡先ページのトップに留まることを意味します。

なぜこれが起こっているのか誰かが知っていますか?あなたが私を正しい方向に向けることができたら、私は感謝するでしょう。

ありがとう、

ユーコン

ps、私はこのサイトですべての同様の質問を読みました、しかし、彼らは私を助けません。

5
Yukon Cornelius

URLが http://mysite.com/contact/#rocket に変更されても問題ありませんが、ターゲットページでアンカーを定義する方法を変更する必要があります。

この方法を使う代わりに

<a name="rocket"></a>
<div>
<h3>The Title</h3>
<p>some text</p>
</div>

このようにジャンプしたいコンテンツにIDを追加する必要があります。

<div id="rocket">
<h3>The Title</h3>
<p>some text</p>
</div>

これにより、HTMLマークアップがきれいになり、ジャンプ用の余分な<a>要素がなくなります。

7
Ben Cole