替换url参数
function replaceUrlParams(key, val) {
  let href = location.href;
  if (href.indexOf("?") === -1) return;
  var query = href.indexOf("?") + 1;
  var hash = href.indexOf("#") + 1;
  var first = href.substring(query, hash === 0 ? href.length : hash - 1);
  var sec = hash === 0 ? "" : href.substring(hash);
  first = first
    .split("&")
    .map(function (param) {
      return param.startsWith(key + "=") ? key + "=" + val : param;
    })
    .join("&");

  history.replaceState(
    "",
    "",
    href.substring(0, query) + first + (hash === 0 ? "" : "#" + sec)
  );
}

若指定参数不存在则自动添加:

function replaceUrlParams(key, val) {
  var href = location.href;
  if (href.indexOf("?") === -1) return;
  var query = href.indexOf("?") + 1;
  var hash = href.indexOf("#") + 1;
  var first = href.substring(query, hash === 0 ? href.length : hash - 1);
  var sec = hash === 0 ? "" : href.substring(hash);
  if (first.indexOf(key + "=") != -1)
    first = first
      .split("&")
      .map(function (param) {
        return param.startsWith(key + "=") ? key + "=" + val : param;
      })
      .join("&");
  else first += "&" + key + "=" + val;

  history.replaceState(
    "",
    "",
    href.substring(0, query) + first + (hash === 0 ? "" : "#" + sec)
  );
}

 获取:

function getQueryParamObj() {
  var str = location.href;
  var res = {};
  if (str.indexOf("?") === -1) return res;
  var hash = str.indexOf("#");
  str = str.substring(str.indexOf("?") + 1, hash === -1 ? str.length : hash); //str.split("?")[1];
  str.split("&").forEach(function (el) {
    var arr = el.split("=");
    res[arr[0]] = arr[1];
  });
  return res;
}

function getQueryParam() {
  var str = location.href;
  var res = [];
  if (str.indexOf("?") === -1) return res;
  var hash = str.indexOf("#");
  str = str.substring(str.indexOf("?") + 1, hash === -1 ? str.length : hash); //str.split("?")[1];
  str.split("&").forEach(function (el) {
    var arr = el.split("=");
    res.push({
      key: arr[0],
      val: arr[1],
    });
  });

  return res;
}

 

 posted on 2024-01-15 11:27  laremehpe  阅读(21)  评论(0编辑  收藏  举报