href="javascript:void(0)"
と_href="javascript:;"
_を見たことがあります。代わりに_href="javascript:"
_を使用しない理由はありますか?
編集:はっきりさせておきますが、これをonclick
と組み合わせており、代替手段を使用する必要が生じた場合は_return false
_を使用することに異論はありません。もちろん、これは、代替案が_javascript:
_よりも理にかなっている場合にのみ発生します。
また、最初の段落に示されている(明らかに私が思う)私の質問に対する答えはまだ見ていません。 ありがとう、デビッド。 :)
href="javascript:void(0)"
と_href="javascript:;"
_を見たことがあります。代わりに_href="javascript:"
_を使用しない理由はありますか?
質問には答えませんが、もう少し光を当てる可能性があります。netscapeなどの初期バージョンのブラウザの中には、スクリプトがhref
内で使用されたときに問題が発生したものがあります。
void
演算子は、クリックに何もしないように強制するだけでした。
これで、ブラウザが「疑似URL」を適切に実装しているので、javascript:;
を安全に使用できます。
個人的にはどちらも使用しないようにします。代わりにonclick='return false;'
を使用し、href='#'
を設定します。
どうして?なぜなら、hrefにJavascriptコードを入れると、他のURLと同じように、リンクにカーソルを合わせるとブラウザのステータスバーに表示されるからです。散らかっているように見えます。
実際、とにかく無視されるので、ハッシュだけでなく、好きなURLをhref
に入れることができます。ユーザーがJavascriptを無効にしている場合に備えて、ハッシュは最も安全ですが、それ以外は何でもかまいません。
しかし、指摘しなければならないのは、hrefが無効なJavascriptコードになっている<a>
タグがあると、そもそも<a>
タグがあるという点がかなり無効になっているようです。実行時にリンクを有効または無効にする方法はわかりますが、hrefをvoidに設定するだけでは意味がないように見えます。実際のリンクにならない場合は、<span>
またはその他のタグを付けてください。リンクのように見せなければならない場合は、CSSでそれを行うのは簡単です。
どちらも使用しない方が良いです。 href
属性はURLを示します。イベントハンドラーを使用して目的の動作を取得することをお勧めします。これはおそらくonclick
イベントです。
この場合、望ましい動作は明らかに何もしないことです。まず、どこにもリンクされていないのに、なぜアンカータグを使用するのですか?次に、これは、onclick
イベントハンドラーがfalse
を返すようにすることで、イベントのバブリングを防ぐことで処理できます。次に、href
は#
を指すか、イベントハンドラーとほぼ同じ効果を持つURLを指すようにすることもできます。そのため、JavaScriptが有効になると正常に機能が低下します。オフ。
理想的な状況は、要素自体にコードを配置せず、スクリプトタグまたは外部ファイルのいずれかでjavascriptを使用し、そこでイベントハンドラーをバインドすることです。