- ベストアンサー
<a href="#" …>の意味を教えてください。
Javascriptを見ていると <a href="#" onClick="new_open();return false"> なる記述がありますが、 この<a href="#" の部分の意味を教えてください。 <a herf まではわかるのですが、この#はどのようないみなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
href="#" というのは「そのページの最上部へのリンク」という意味で、スクロールした場所から一番上に戻したい場合に使います。 ちなみに、同ページ内への # 指定でのリンクでは、ページは読み込まれずスクロールするだけです。 <a href="#" onClick="new_open();return false"> というのは、そのリンクがクリックされた時に new_open という関数を実行し、他の処理はするな、という意味です。 return false というのが、A タグ本来のジャンプ動作をキャンセルさせるためのもので、これを取ってしまうとページ最上部にジャンプしてしまいます。 このスクリプトを書いた人は onClick だけが必要だったのでしょうが、href がないとリンクの下線が出ないなどの不都合があるため、やむなく # を書いたのでしょう。 JavaScriptの内容を実行したいだけなら、 <a href="javascript:new_open()"> と書けば十分なのですが、一部のブラウザではこのタイプのリンクをクリックすると、アニメーションGIFが止まってしまうなどの弊害があるため、嫌う人もいるようです。 また、JavaScriptが有効でない環境の人は、質問に書かれたリンクをクリックしてもページ最上部に戻されるだけで、開くべきページの内容を見ることができません。 なので、 <a href="ページのURL" target="_blank" onClick="new_open(); return false"> とするなどして、非JavaScript環境にも対応した方が親切です。 長文失礼しました。
その他の回答 (2)
- 7623goo
- ベストアンサー率46% (34/73)
No.1の方のおっしゃるようにどこにもジャンプしないようにするためです。 #は本来、下記のタグのように、ページ内のアンカーポイントに移動するためのものですが何も名前がないとページの一番上に移動します。 <a href="#label1">ラベル1に移動</a> <a name="label1">移動先 #よりは下記のようにしたほうがベターだと思います。 voidは値を何も返さない命令です。 <a href="JavaScript:void(0)" onClick="new_open();return false">
お礼
#はID属性を使用する際に使うものとの意識がなく、ちゃんと理解していませんでした。ありがとうございましたm(__)mまた、void(0)で設定したこともあったのですが、JavaScript:void(0)とすべきだったこともわかり、助かりました。ありがとうございました。
- agfa
- ベストアンサー率38% (164/424)
#はリンクをどこにもジャンプさせないようになります。単純にこのタグですと、<a>タグを利用して、Javascriptの「new_open()」を呼び出すために使っているだけです。
お礼
早速の回答ありがとうございました。今後ともよろしくお願いします。お名前はよく拝見します。これからもがんばってくださいm(__)m
お礼
いつもありがとうございますm(__)m よく理解できました。 href="#" の意味を解説しているものがどうしても見つからず、今までなんとなく使用していました。 本当にありがとうございました。