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
)?
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; } );
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.