如果我不知道主机名,有没有Javascript /服务器端脚本编写的方法可以链接到同一框中的其他端口号?
例如:
<a href=":8080">Look at the other port</a>
(此示例不起作用,因为它将:8080视为我想导航到的字符串)
如果这行得通,那就太好了,我不明白为什么不这样做,因为这:是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中测试
更新 :修复了将端口附加到URL末尾的错误,并且还增加了对相对URL和绝对URL附加到末尾的支持:
<a href=":8080/test/blah">Test absolute</a> <a href=":7051./test/blah">Test relative</a>