17

私は見てhref="javascript:void(0)"きましたが、代わりhref="javascript:;" に使用しない理由はありますか?href="javascript:"

編集:明確にさせてください:私はこれを an と組み合わせており、代替を使用する必要が生じた場合にonclick使用することに異議はありません. return falseもちろん、これは代替案が よりも理にかなっている場合のみですjavascript:

また、最初の段落に示されている私の質問に対する回答をまだ見ていません (明らかにそう思います)。ありがとう、デビッド。:)

私は見てhref="javascript:void(0)"きましたが、代わりhref="javascript:;" に使用しない理由はありますか?href="javascript:"

4

4 に答える 4

18

個人的には、どちらも使用を避けたいと思います。代わりonclick='return false;'に、 を設定するだけですhref='#'

なんで?JavaScript コードを href に配置すると、他の URL と同じように、リンクにカーソルを合わせるとブラウザーのステータス バーに表示されるためです。乱雑に見えるだけです。

href実際、とにかく無視されるので、ハッシュだけでなく、任意の URL を に入れることができます。ハッシュは、ユーザーが Javascript を無効にしている場合に備えて最も安全ですが、その点を除けば、何でもかまいません。

しかし、指摘しなければならないのは<a>、無効な Javascript コードに行く href を持つタグを持つこと<a>は、そもそもタグを持つという点をむしろ無効にしているように見えるということです。実行時にリンクを有効または無効にする方法はわかりますが、単純に href を void に設定するのはやや無意味に思えます。それが実際のリンクにならない場合は、<span>またはその他のタグを付けないでください。リンクのように見せる必要がある場合は、CSS でそれを行うのは簡単です。

于 2011-03-08T19:19:41.567 に答える
14

あなたの質問には答えませんが、もう少し光を当てるかもしれません.netscapeのような初期のバージョンのブラウザには、スクリプトがhref.

voidオペレーターは、クリックしても何もしないように強制するだけでした。

現在、ブラウザが「疑似 URL」を適切に実装しているため、安全にjavascript:;.

于 2011-10-30T15:12:03.593 に答える
2

どちらも使用しない方が良いです。href属性はURLを示します。イベントハンドラーを使用して、目的の動作(おそらくonclickイベント)を取得することをお勧めします。

この場合、望ましい動作は明らかに何もしないことです。まず、どこにもリンクされていないのに、なぜアンカータグを使用するのですか?onclick次に、これは、イベントハンドラーにを返すようにすることで、イベントのバブリングを防止することで処理できますfalse。次に、hrefを指すか#、またはイベントハンドラーとほぼ同じ効果を持つURLを指すようにすることもできます。そのため、JavaScriptをオフにすると正常に機能が低下します。

于 2011-03-08T19:34:38.220 に答える
2

理想的な状況は、要素自体にコードを配置するのではなく、スクリプト タグまたは外部ファイルで JavaScript を使用し、そこにイベント ハンドラーをバインドすることです。

于 2011-03-08T19:23:04.917 に答える