如何通过javascript更改href地址端口

时间:2012-12-21 09:59:16

标签: javascript html

我正在尝试创建一个简单的href,但指向另一个端口,即一组按钮中的一个href地址应该被替换和操纵以指向有效的地址:

<div id="btnLSR" class="btn" > <a href="extern.rms:8080"> </a> </div>

应指向'http:// hostname:8080 / extern.rms'

我稍微操纵了来自其他解决方案的javascript

<script language="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.port = port[1];
                     window.alert(target.port + " " + target.href);
                     target.href = target.href.replace("/:"+target.port, "");
                 } 
             }
    }, false);

</script>

但是没有办法指出正确的地址。目前此链接指向'http://extern.rms:8080',即没有变化。

你有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

document.addEventListener('click', function (event) {
    var target = event.target;
    if (target.tagName.toLowerCase() == 'a') {
        // Split 'extern.rms:8080' up into a array: ['extern.rms','8080'];
        var h = target.getAttribute('href').split(':');
        // Set the href to: The current `origin` + ':' + '8080' + '/' + 'extern.rms';
        target.href = 'http://' + window.location.hostname + ':' + h[1] + '/' + h[0];
    }
}, false);