尝试制作一个带有一些链接的简单 HTML 页面,但尝试使其检测到您是本地用户或使用 SSH 端口转发。
一些信息;
我在本地访问网页时使用的URL: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"
谢谢 马特。
最佳答案
以下内容应该满足您的需要,连接字符串时您应该使用 +
而不是 &&
window.location = window.location.protocol +
'//' + window.location.hostname + ':9001';
您可以在 onclick
处理程序中使用上述内容:
onclick="window.location = ..."
您无需指定 onclick="javascript:"
,因为这是默认情况下假定的。
此外,最好使用以下内容,而不是使用内联点击处理程序:
- https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
- http://msdn.microsoft.com/en-us/library/ie/ms536343%28v=vs.85%29.aspx
如何同时使用上述两者(现代浏览器使用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>
关于javascript - 使用带有简单 html 链接的 window.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13131464/