I seguenti sono due metodi per costruire un link che ha il solo scopo di eseguire codice JavaScript. Qual è meglio, in termini di funzionalità, velocità di caricamento della pagina, scopi di validazione, ecc.
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
oppure
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
'#'
riporterà l'utente all'inizio della pagina, quindi di solito vado con void(0)
.
javascript:;
si comporta anche come javascript:void(0);
Il primo, idealmente con un vero link da seguire nel caso in cui l'utente abbia il JavaScript disabilitato. Assicuratevi solo di restituire false per evitare che l'evento click si attivi se il JavaScript viene eseguito.
<a href="#" onclick="myJsFunc(); return false;">Link</a>
Se usi Angular2, questo modo funziona:
<a [routerLink]="" (click)="passTheSalt()""Click me</a>
.
Non perdete di vista il fatto che il vostro URL può essere necessario -- l'onclick viene sparato prima che il riferimento sia seguito, quindi a volte avrete bisogno di elaborare qualcosa dal lato del cliente prima di navigare fuori dalla pagina.