javascript:void(0)"の意味を教えてください。

<a href="javascript:void(0)" id="loginlink">login</a>

このようなhrefは何度も見たことがありますが、正確には何を意味しているのかわかりません。

ソリューション

void演算子は,与えられた式を評価した後,undefined` を返します. 式を評価して,「未定義」を返します.

void演算子は、しばしば単に プリミティブな値を得るために使われることが多いです。 値を得るためだけに使われることが多く、通常は "void(0)" (これは "void 0" と同義) を使います。 これは「void 0」と同等です)。)このような場合 このような場合、グローバル変数undefinedを代わりに使うことができます。 の代わりに使うことができます。 既定外の値が割り当てられていないと仮定して の値が割り当てられていないと仮定して)。)

その説明はこちらにあります。void operatorを参照してください。

リンクの href でこれを行いたい理由は、通常、javascript: URL は、その JavaScript を評価した結果のプレーンテキストバージョンにブラウザをリダイレクトします。しかし、その結果が undefined であれば、ブラウザは同じページに留まります。void(0)は、undefined`と評価される短くてシンプルなスクリプトです。

解説 (26)

つまり、何もしないということです。これは、リンクがどこにも「移動」しないようにするための試みです。しかし、それは正しい方法ではありません。

実際には、onclickイベントで、次のようにfalseを返すべきです。

<a href="#" onclick="return false;">hello</a>

一般的には、リンクが何らかの「JavaScript的」なことをしている場合に使用されます。例えば、AJAXフォームを投稿したり、画像を交換したりするような場合です。この場合、呼び出されている関数が何であれ、falseを返すようにします。

しかし、あなたのウェブサイトを完全に素晴らしいものにするために、一般的には、閲覧する人がJavaScriptを実行しないことを選択した場合に、同じ動作を行うリンクを含めるでしょう。

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>
解説 (17)

a**タグには必ずhrefをつけるべきです。未定義」を返すJavaScriptの関数を呼び出すことは問題ありません。また、'#'へのリンクも同様です。

Internet Explorer 6のアンカータグにhrefを付けないと、a:hoverスタイルが適用されません。

これはひどい話で、人類に対する小さな犯罪ですが、Internet Explorer 6全般に言えることです。

ご参考になれば幸いです。

Internet Explorer 6は、実際には人類に対する大きな犯罪です。

解説 (0)