Función JavaScript en href vs. onclick

Quiero ejecutar una simple función de JavaScript en un clic sin ninguna redirección.

Hay alguna diferencia o beneficio entre poner la llamada de JavaScript en el atributo href (así:

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

) frente a ponerla en el atributo onclick (vinculándola al evento onclick)?

Solución

Poner el onclick dentro del href ofendería a aquellos que creen firmemente en la separación del contenido del comportamiento/acción. El argumento es que su contenido html debe permanecer centrado únicamente en el contenido, no en la presentación o el comportamiento.

El camino típico en estos días es utilizar una biblioteca de javascript (por ejemplo, jquery) y crear un controlador de eventos utilizando esa biblioteca. Se vería algo así:

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

Además de todo esto, el href se muestra en la barra de estado del navegador's, y al hacer clic no. Creo que no es fácil de usar para mostrar el código javascript allí.

Comentarios (0)

Personalmente, encuentro molesto poner llamadas de javascript en la etiqueta HREF. Normalmente no presto atención a si algo es un enlace javascript o no, y a menudo quiero abrir cosas en una nueva ventana. Cuando intento hacer esto con uno de estos tipos de enlaces, obtengo una página en blanco sin nada en ella y con javascript en mi barra de localización. Sin embargo, esto se evita un poco usando un onlick.

Comentarios (0)