¿Qué valor "href" debo utilizar para los enlaces de JavaScript, "#" o "javascript:void(0)"?

A continuación se presentan dos métodos para construir un enlace que tiene como único objetivo ejecutar código JavaScript. ¿Cuál es mejor, en términos de funcionalidad, velocidad de carga de la página, propósitos de validación, etc.?

Empezar fragmento: js ocultar: falso -->

function myJsFunc() {
    alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>

Fin del fragmento;

o

function myJsFunc() {
    alert("myJsFunc");
}
 <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>

Fin del fragmento;

El botón "#" llevará al usuario de vuelta al principio de la página, por lo que suelo utilizar "void(0)`.

javascript:; también se comporta como javascript:void(0);.

Comentarios (8)

El primero, idealmente con un enlace real a seguir en caso de que el usuario tenga JavaScript deshabilitado. Sólo asegúrese de devolver false para evitar que el evento de clic se dispare si el JavaScript se ejecuta.

<a href="#" onclick="myJsFunc(); return false;">Link</a>

Si usas Angular2, esta forma funciona:

<a [routerLink]="" (click)="passTheSalt()">Click me</a>.

Ver aquí https://stackoverflow.com/a/45465728/2803344

Comentarios (12)

No pierda de vista que su URL puede ser necesaria -- onclick se dispara antes de seguir la referencia, así que a veces necesitará procesar algo del lado del cliente antes de navegar fuera de la página.

Comentarios (0)