hrefとonclickの間のJavaScript関数

シンプルなJavaScriptの関数を、リダイレクトなしでクリック時に実行したい。

JavaScriptの呼び出しを href 属性に記述するのと、何か違いや利点があるのでしょうか(以下のように。

<a href="javascript:my_function();window.print();">....</a>

JavaScriptの呼び出しを href 属性に記述するのと、onclick 属性に記述するのとでは、何か違いや利点がありますか (onclick` イベントにバインドします)。

ソリューション

hrefの中にonclickを入れることは、コンテンツと行動・行為の分離を強く信じている人たちを怒らせることになります。htmlコンテンツは、プレゼンテーションや行動ではなく、コンテンツのみに焦点を当てるべきだという主張です。

最近の典型的な方法は、javascriptのライブラリ(例:jquery)を使用し、そのライブラリを使用してイベントハンドラを作成することです。これは次のようなものです。

$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
解説 (6)

ここに加えて、ブラウザのステータスバーにはhrefが表示され、onclickは表示されません。ここにjavascriptのコードを表示するのは、ユーザーフレンドリーではないと思います。

解説 (0)

個人的には、HREFタグの中にjavascriptの呼び出しを入れるのは煩わしいと感じています。私は通常、javascriptのリンクであるかどうかはあまり気にせず、新しいウィンドウで開きたいと思うことがよくあります。この種のリンクでこれを実行しようとすると、何も表示されていない真っ白なページが表示され、ロケーションバーにはjavascriptが表示されます。しかし、onlickを使用することで、この問題を少し回避することができます。

解説 (0)