js 根据相对路径url获得完整路径url

 看别人写的代码有些问题,自己更改了下。

///根据相对路径得到完整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;
};

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想想你说过的话

最喜欢你一言不合就打赏的样子了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值