Byłoby miło, gdyby to zadziałało, a nie rozumiem, dlaczego nie, ponieważ :
jest to zastrzeżony znak do separacji portów w składniku URI, więc przeglądarka mogłaby realistycznie zinterpretować to jako port w odniesieniu do tego adresu URL, ale niestety tak nie jest. t i nie da się tego zrobić.
Dlatego będziesz potrzebować do tego Javascript;
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);
Przetestowano w przeglądarce Firefox 4
Skrzypce: http://jsfiddle.net/JtF39/79/
Aktualizacja : Naprawiono błąd związany z dołączaniem portu do końca adresu URL, a także dodano obsługę względnych i bezwzględnych adresów URL, które mają być dołączane na końcu:
<a href=":8080/test/blah">Test absolute</a>
<a href=":7051./test/blah">Test relative</a>