Sería bueno si esto pudiera funcionar, y no veo por qué no porque :es un carácter reservado para la separación de puertos dentro del componente URI, por lo que el navegador podría interpretarlo de manera realista como un puerto relativo a esta URL, pero desafortunadamente no ty no hay forma de que lo haga.
Por lo tanto, necesitará Javascript para hacer esto;
// delegate event for performance, and save attaching a million events to each anchor
document.addEventListener('click', function(event) {
var target = event.target;
if (target.tagName.toLowerCase() == 'a')
{
var port = target.getAttribute('href').match(/^:(\d+)(.*)/);
if (port)
{
target.href = window.location.origin;
target.port = port[1];
}
}
}, false);
Probado en Firefox 4
Violín: http://jsfiddle.net/JtF39/79/
Actualización : Se corrigió un error para agregar el puerto al final de la URL y también se agregó soporte para las URL relativas y absolutas que se agregarán al final:
<a href=":8080/test/blah">Test absolute</a>
<a href=":7051./test/blah">Test relative</a>