Qual "href" valor devo usar para links JavaScript, "#" ou "javascript:void(0)"?
A seguir estão dois métodos para construir um link que tem o único propósito de executar código JavaScript. Qual é melhor, em termos de funcionalidade, velocidade de carregamento da página, fins de validação, etc.?
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
ou
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
3969
3
'#'
irá levar o usuário de volta ao topo da página, então eu normalmente vou comvoid(0)
.javascript:;
também se comporta comojavascript:void(0);
O primeiro, idealmente com um link real a seguir no caso do usuário ter o JavaScript desativado. Apenas certifique-se de retornar falso para evitar que o evento do clique dispare se o JavaScript for executado.
Se você usar Angular2, este caminho funciona:
<a [routerLink]="" (click)="passTheSalt()">Click me</a>
.Veja aqui https://stackoverflow.com/a/45465728/2803344
Don'não perca de vista o fato de que sua URL pode ser necessária -- o onclick é disparado antes que a referência seja seguida, então às vezes você precisará processar algo do lado do cliente antes de navegar para fora da página.