No debe usarse en controladores de eventos (aunque la mayoría de los navegadores funcionan de forma defensiva y no lo castigarán). También argumentaría que no debería usarse en el atributo href de un ancla. Si un navegador admite javascript, usará el controlador de eventos correctamente definido. Si un navegador no lo hace, un enlace javascript: aparecerá roto.OMI, es mejor señalarles una página que explique que necesitan habilitar javascript para usar esa funcionalidad, o mejor aún, una versión de la funcionalidad que no requiera javascript. Por lo tanto, algo como:
<a href="non-ajax.html" onclick="niftyAjax(); return false;">Ajax me</a>
Editar: Pensó en una buena razón para usar javascript :. Bookmarklets. Por ejemplo, éste le envía a Google Reader para ver los canales RSS de una página:
var b=document.body;
if(b&&!document.xmlVersion){
void(z=document.createElement('script'));
void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');
void(b.appendChild(z));
}else{
location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)
}
Para que un usuario añadir fácilmente este bookmarklet, que le formatearlo así:
<a href="javascript:var%20b=document.body;if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');void(b.appendChild(z));}else{location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)}">Drag this to your bookmarks, or right click and bookmark it!</a>