在我的网页中,我想链接到本地网络中的其他网络服务器。
当我在本地网络时,我使用<a href="192.168.1.111:8080/index.jsp">
来执行此操作。但是,当我访问本地网络之外的网站时,我需要使用域名。 <a href="mydomain.com:8080/index.jsp">
如果我要从LAN和WAN访问它,我该如何在同一代码页面中执行此操作。
答案 0 :(得分:1)
好吧,如果它是一个选项,避免这个问题的最简单方法是使用相对链接。例如,如果您要链接到同一网站上的其他网页,那么您的链接将始终有效,如果它类似于“../ directory / some-web-page.html”而非完整与http包括链接。
否则,如果您链接到一个完全不同的站点,您可以使用非常简单的JQuery ajax请求检查您的页面是否存在于本地服务器上。如果它不存在,则假设您未登录到同一网络并插入远程域名。
As discussed here,您的简单ajax请求只能获取本地托管页面的HEAD,这样您就不会获取太多数据,只能确认它是否存在。你的代码可能是这样的:
$( document ).ready(function(){
$.ajax({
url: 'path/to/your-file.html',
type: 'HEAD',
success: function() {
// page exists
// replace the href attribute with local host link
document.getElementById('your-link').setAttribute('href', 'path/to/your-file.html');
},
error: function() {
// page does not exist
// do nothing, so your link sends user to remote site
}
});
});
然后,在您的HTML中,只需包含指向您的远程网站的链接,如下所示:
<a id="your-link" href="yourremotesite.com">This is a link</a>
这应该适用于本地和远程服务器,而无需更改代码。
修改强>
我不得不跳下床,因为另一个答案只是在唠叨我......
您还可以尝试访问 window.location.host 或 window.location.hostname 并在if语句中对其进行测试,以确定您的网页是否在本地主机或远程服务器。
无论如何,我希望其中一个解决方案有所帮助。晚安,祝你好运!
答案 1 :(得分:0)
str[0] = 'Y'; //No compiler error, undefined behavior
<a href="" id="link">link</a>