тут все просто, но переход по спану ... это же не ссылка, ёмаё!
Пример: живой пример
<!DOCTYPE HTML>
<html>
<head><title>.</title><style>.a {color:blue;text-decoration: underline} a, span {margin:10px} </style></head>
<body>
<a href="http://javascript.ru">Это ссыль внутри боди</a>
<span onclick="location.href='http://google.ru'" class="a">спан внутри боди</span>
<div>
Это дивчик
<a href="http://ya.ru">Это ссыль внутри дивчика</a>
<span>
А это спан внутри
<a href="http://google.ru">Это ссыль внутри спана</a>
<span onclick="location.href='http://google.ru'" class="a">спан глубоко внутри....</span>
</span>
<span onclick="location.href='http://google.ru'" class="a">спан внутри дива</span>
</div>
<script>
document.body.onclick = function(e){
if(!e){ e=event;e.target = e.srcElement }
var tagname = e.target.nodeName.toLowerCase();
if( tagname === "a" || tagname === "span") {
alert( "Делаем чёрные дела. \n\nИмя тега : "+tagname );
return false;
}
}
</script>
</body>
</html>