2

次のマークアップがあるとします。

<div id ="About" style="height: 2000px">
    About
</div>
<div id="Work" style="height: 2000px">
    Work
</div>

ブラウザを実行location.hash = 'Work';すると、「Work」要素の位置にジャンプします。name 属性を持つアンカータグでその動作を期待していました。しかし、私たちの場合はdivID を持つコンテナーです。これを IE8/9 と Chrome でテストしました。

divハッシュを変更するとブラウザがコンテナにジャンプするのはなぜですか?

あなたの便宜のために、私は jsFiddle を開いた。

4

2 に答える 2

2

name 属性を持つアンカーだけでなく、location.hash または URL の #Work を使用して、ID を持つものにジャンプできます。

たとえば、ここをクリックする#show-editor-buttonと、このページの IDに移動します

于 2012-11-02T09:53:42.130 に答える
1

特徴です。そのように設計されており、 rfc2854で読むことができます。引用させてください:

フラグメント識別子

URI 仕様 [URI] は、フラグメント識別子 (「#」の後の URI の一部) のセマンティクスは、
検索アクションの結果として生じるデータのプロパティであり、フラグメント識別子の形式と
解釈は、検索結果のメディアタイプ。

text/html とラベル付けされたドキュメントの場合、フラグメント識別子
は対応する名前の要素を指定します。どの要素も
「id」属性で名前を付けることができ、A、APPLET、FRAME、IFRAME、IMG、および
MAP 要素は「name」属性で名前を付けることができます。これについては、[HTML40] セクション 12 で詳しく説明されています。

于 2012-11-02T09:58:53.720 に答える