到超链接中不同端口号的相对URL?

如果我不知道主机名,有没有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>

以上是 到超链接中不同端口号的相对URL? 的全部内容, 来源链接: utcz.com/qa/428484.html

回到顶部