我想知道网址是相对还是不使用javascript。基本上我将传递url,如果url是相对附加当前url,即减去文件名。有人可以帮助我吗
例如: -
当前网址 = http://example.com/big/index.html
PASSED URL 1 = newindex.html
OUTPUT = http://example.com/big/newindex.htmlPASSED URL 2 = http://mysite.com/big/newindex.html
OUTPUT = http://mysite.com/big/newindex.html
答案 0 :(得分:2)
所以最简单的就是
var loc = location.href;
var dir = loc.substring(0,loc.lastIndexOf('/'));
function getHref(urlString) {
if (urlString) return (urlString.toLowerCase().indexOf('http:')==0)?urlString:dir+'/'+((urlString.indexOf('/')==0)?urlString.substring(1):urlString);
}
我正在使用location object,substring,indexOf link text,lastIndexOf和ternary operator - 嵌套
答案 1 :(得分:0)
使用正则表达式检查传递的url是否具有非相对组件。如果没有根据当前网址的一部分创建新的输出网址(例如通过常规exp进行修复)和相对部分。
答案 2 :(得分:0)
<script type="text/javascript">
var loc = location.href;
var baseurl = loc.substring(0,loc.lastIndexOf('/'));
function getoutputurl(inputurl)
{
var returnurl = '';
if (inputurl)
{
if(inputurl.toLowerCase().indexOf('http://')==0)
{
returnurl = inputurl;
}
else
{
returnurl = baseurl+'/' ;
if(inputurl.indexOf('/')==0)
{
returnurl = returnurl + inputurl.substring(1);
}
else
{
returnurl = returnurl + inputurl;
}
}
}
return returnurl;
}
alert(getoutputurl('http://google.com'));
alert(getoutputurl('google.com'));
</script>
尝试使用此代码