На самом деле preventDefault не нужен, если после скрипта должен идти нормальный переход(и в скрипте нет ничего асинхронного).
Те просто:
link.addEventListener('mousedown',function(){
//ваш код
},false)
Если заморачиваться, то надо бы ещё добавить listener на keydown и event.keyCode == код энтера, а также вариант с attachEvent для старых ie.
Но и так сойдёт.)