これがうまくいけばいいのです:が、なぜですか?はURIコンポーネント内のポート分離用の予約文字なので、ブラウザはこれを現実的にこのURLに対するポートとして解釈することができますが、残念ながらそうではありません。 tそれを行う方法はありません。
したがって、これを行うにはJavaScriptが必要です。
// 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);
Firefox 4でテスト済み
フィドル: http : //jsfiddle.net/JtF39/79/
更新:ポートをURLの末尾に追加するバグが修正され、相対URLと絶対URLが末尾に追加されるサポートも追加されました。
<a href=":8080/test/blah">Test absolute</a>
<a href=":7051./test/blah">Test relative</a>