看别人写的代码有些问题,自己更改了下。
///根据相对路径得到完整URL
///strUrl:URL地址
var GetPath = function (strUrl) {
// 0:若以https: http: file:开头,直接返回。
if (strUrl.toLowerCase().indexOf("https:") != -1 || strUrl.toLowerCase().indexOf("http:") != -1 || strUrl.toLowerCase().indexOf("file:") != -1) {
return strUrl;
}
// 一:协议, ip, 端口号
var strHref = window.location.protocol + "//" + window.location.host;
// 二:绝对路径
if (strUrl.indexOf("/") == 0 || strUrl.indexOf("~/") == 0) {
// 情景1: strUrl为绝对路径
strUrl = strHref + strUrl.replace("~/", "/");
} else {
// 情景2: strUrl为相对路径
var arrHref = window.location.pathname.split("/"); //获取当前的相对路径级
var intBackNum = 1; //回退多少级路径
var strBack = ""; //有多少个退格符../
while (strUrl.indexOf(strBack + "../") == 0) {
strBack += "../";
intBackNum++;
}
strUrl = strUrl.replace(strBack, ""); //替换掉所有的退格符../
if (arrHref.length - intBackNum >= 0) {
arrHref.length = arrHref.length - intBackNum; //减去路径级
} else {
arrHref.length = 0;
}
var strPath = arrHref.join("/"); //组成路径
strUrl = strHref + strPath + "/" + strUrl;
}
return strUrl;
};