以下は、JavaScriptのコードを実行することだけを目的としたリンクを構築する2つの方法です。機能性、ページの読み込み速度、検証目的などの観点から、どちらが優れているでしょうか?
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
または
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
'#'ではユーザーがページの先頭に戻ってしまうので、通常は
void(0)`とします。
また、javascript:;
もjavascript:void(0);
と同様の動作をします。
最初のものは、ユーザーがJavaScriptを無効にしている場合に備えて、理想的にはフォローするための本物のリンクをつけます。ただ、JavaScriptが実行された場合にクリックイベントが発生しないように、falseを返すようにしてください。
<a href="#" onclick="myJsFunc(); return false;">Link</a>
Angular2を使用している場合は、この方法が有効です。
<a [routerLink]=""(click)="passTheSalt()">Click me</a>
.
こちらをご覧ください https://stackoverflow.com/a/45465728/2803344