Como han mencionado otras respuestas, evite el uso de enlaces de href javascript:
, y es completamente innecesario en los atributos del controlador de eventos. Sin embargo, dado que las etiquetas A
a veces aún son semánticamente correctas, tendrá que poner algo en el atributo href
si desea que sus estilos de CSS :link
y :hover
se apliquen al elemento en Internet Explorer.En este caso, utilice:
<a href="#" onclick="doSomething(); return false;">Link</a>
O
<a href="javascript://" onclick="doSomething();">Link</a>
Hay un error (algo oscura) con el protocolo Javascript - en Internet Explorer *, pensará que está dejando la página cuando haces clic en el enlace. Si está utilizando la ventana .antes de descargar, su mensaje de navegación aparecerá en este momento. Solo por esta razón, hemos dejado de usar el protocolo javascript por completo, así que no tenemos este error porque nos olvidamos de verificarlo cuando agregamos un mensaje de navegación a alguna página.
* Probablemente debería haber especificado la versión cuando escribí por primera vez este. No lo recuerdo para nada, pero solo en caso de que el error esté presente solo en un navegador que ya no funciona, como IE 6 o 7, probablemente sea mejor que lo pruebes tú mismo.
Recuerde 'return false;' si usa # para que cancele la acción 'href' y no vaya al principio de la página o (peor) cambie su hash si tenía uno que estaba usando en realidad para algo. Alternativamente, puede usar 'javascript: //' como 'href' que realmente no hará nada. – Nicole
+1 @Renesis. Además, incluso puede agregar una descripción simple en el href con ese método ... por ejemplo: 'javascript: // Abrir en una nueva ventana'. Es un comentario de JS así que puedes poner cualquier cosa allí. Esto es útil porque se mostrará en la barra de estado cuando el usuario pase el mouse sobre el enlace – adamJLev
@Infinity - idea genial! No había pensado en eso antes. – Nicole