使用带有简单html链接的window.location

时间:2012-10-30 00:09:35

标签: javascript html window.location

尝试制作一个简单 HTML页面,其中包含一些链接,但尝试将其设置为检测到您是本地或使用SSH端口转发。

一些信息;

我在访问网页时使用的网址:192.168.3.5/www/index.html

使用SSH端口转发时使用的URL:127.0.0.1:9009 / www / index.html

这是我在index.html页面中使用的完整代码....

<HTML>
- SABNZBD : Pick <A href="#" onclick="javascript:window.location.port=8080">LOCAL</a> or <A href="#" onclick="javascript:window.location.port=9001">REMOTE</a> Connection.
</HTML>

如果我使用此代码;

 onclick="javascript:window.location.port=9001"

它有点工作,它返回

http://127.0.0.1:9001/www/#

我真的希望它能够回归:

http://127.0.0.1:9001/

有没有办法可以使用下面的代码?所以它剥离了路径名,只使用我指定的主机名和端口名?因为我似乎无法让它发挥作用。

onclick="javascript:window.location.hostname && window.location.port=9001"

THX 太

2 个答案:

答案 0 :(得分:1)

以下内容应该符合您的要求,在连接字符串时,您应该使用+而不是&&

window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';

您可以在onclick处理程序中使用上述内容:

onclick="window.location = ..."

默认情况下,您无需指定onclick="javascript:"

此外,不是使用内联点击处理程序,最好使用以下内容:

如何同时使用上述两个(现代浏览器的addEventListener,IE的attachEvent)

或者,如果您想让生活更简单,您可以使用自动处理这些浏览器差异的JavaScript库。像jQuery一样。

$('.class_on_first_link').click(function(){
  window.location = window.location.protocol + 
   '//' + window.location.hostname + ':8080';
});

$('.class_on_second_link').click(function(){
  window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';
});

更新

上述省略号的含义是:

<a href="#" onclick="window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';">Port 9001</a>
<a href="#" onclick="window.location = window.location.protocol + 
   '//' + window.location.hostname + ':8080';">Port 8080</a>

答案 1 :(得分:0)

设置pathname也应该做到这一点

onclick="window.location.port=9001;window.location.pathname='/'"