• ベストアンサー

<a href="#" …>の意味を教えてください。

Javascriptを見ていると <a href="#" onClick="new_open();return false"> なる記述がありますが、 この<a href="#" の部分の意味を教えてください。 <a herf まではわかるのですが、この#はどのようないみなのでしょうか?

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.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環境にも対応した方が親切です。 長文失礼しました。

nawa_chan
質問者

お礼

いつもありがとうございますm(__)m よく理解できました。 href="#" の意味を解説しているものがどうしても見つからず、今までなんとなく使用していました。 本当にありがとうございました。

その他の回答 (2)

  • 7623goo
  • ベストアンサー率46% (34/73)
回答No.2

No.1の方のおっしゃるようにどこにもジャンプしないようにするためです。 #は本来、下記のタグのように、ページ内のアンカーポイントに移動するためのものですが何も名前がないとページの一番上に移動します。 <a href="#label1">ラベル1に移動</a> <a name="label1">移動先 #よりは下記のようにしたほうがベターだと思います。 voidは値を何も返さない命令です。 <a href="JavaScript:void(0)" onClick="new_open();return false">

nawa_chan
質問者

お礼

#はID属性を使用する際に使うものとの意識がなく、ちゃんと理解していませんでした。ありがとうございましたm(__)mまた、void(0)で設定したこともあったのですが、JavaScript:void(0)とすべきだったこともわかり、助かりました。ありがとうございました。

  • agfa
  • ベストアンサー率38% (164/424)
回答No.1

#はリンクをどこにもジャンプさせないようになります。単純にこのタグですと、<a>タグを利用して、Javascriptの「new_open()」を呼び出すために使っているだけです。

nawa_chan
質問者

お礼

早速の回答ありがとうございました。今後ともよろしくお願いします。お名前はよく拝見します。これからもがんばってくださいm(__)m