ハマっている「お菓子」を教えて!

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

A 回答 (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環境にも対応した方が親切です。

長文失礼しました。
    • good
    • 31
この回答へのお礼

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

お礼日時:2003/07/23 04:56

No.1の方のおっしゃるようにどこにもジャンプしないようにするためです。


#は本来、下記のタグのように、ページ内のアンカーポイントに移動するためのものですが何も名前がないとページの一番上に移動します。
<a href="#label1">ラベル1に移動</a>
<a name="label1">移動先

#よりは下記のようにしたほうがベターだと思います。
voidは値を何も返さない命令です。
<a href="JavaScript:void(0)" onClick="new_open();return false">
    • good
    • 2
この回答へのお礼

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

お礼日時:2003/07/23 04:58

#はリンクをどこにもジャンプさせないようになります。

単純にこのタグですと、<a>タグを利用して、Javascriptの「new_open()」を呼び出すために使っているだけです。
    • good
    • 2
この回答へのお礼

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

お礼日時:2003/07/23 05:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A