Javascript y tags de anclaje, mejor práctica?

Pregunta rápida.

¿Deberíamos poner Javascript en el HREF o usar onClick (evento)?

¿Hay algún pros / contra para usar cualquiera de los dos? Personalmente, creo que es más fácil / más limpio simplemente poner código en el href, y no tener que devolver el mensaje falso o preocuparse de saltar a #

¿Hay algún problema específico del navegador conocido con cada método …

Ejemplos:

Click Me Click Me Click Me 

1) Más bien use onclick. Asegúrese de tener una URL de reserva racional en href cuando JS no esté permitido.

2) En lugar de onclick="..." , debe usar el controlador de eventos. Encuentre elementos usando jQuery o XPath, y luego para cada uno, llame a element.addEventListener() .

 element.addEventListener("click", function() { alert("bar"); }, false); 

O a la vieja usanza …

 element.onclick = function() { alert("foo"); }; 

Mantener el código separado del html es más limpio IMO.

 Click Me 

Luego en la cabeza o archivo js separado:

 document.getElementByID("foo").onclick = function() { alert("hi"); } 

Yo personalmente no pondría el código JavaScript en el HTML. Debería usar un detector de eventos que se activará cuando se haga clic en .

 Click Me 

Y entonces:

 document.getElementById('linkA').addEventListener('click', function(e){ e.preventDefault(); // Prevents page from scrolling to the top alert('foo!'); }); 

En el evento onclick (aunque asignado con JS en lugar del atributo) con un atributo sensible href. Desarrollar cosas que funcionan

Generalmente, externalizaría JavaScript pero usaría href para llamarlo:

Click Me

Aunque creo que su ejemplo de alert rápida está bien como una excepción a la regla.

Sin embargo, si usa una biblioteca JS como jQuery, puede asignar eventos directamente; consulte el primer ejemplo en el tutorial de jQuery que examina el elemento de ancla http://docs.jquery.com/Tutorials:How_jQuery_Works