js修改浏览器地址栏里url的方法

1、更新url某一参数的值

function updateQueryStringParameter(uri, key, value) {
  if (!value) { return uri }
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}

2、删除url某一参数

function removeQueryStringParameter(uri, key) {

  var re = new RegExp("([&]?)" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '');
  }

}

3、使用

let newurl = updateQueryStringParameter(window.location.href, 'projectId', '123');
                   
// 更新当前url,没有历史记录
window.history.replaceState({
  path: newurl
}, '', newurl);
let newurl = removeQueryStringParameter(window.location.href, 'projectId');
           
// 更新当前url,没有历史记录
window.history.replaceState({
  path: newurl
}, '', newurl);

你可能感兴趣的:(JavaScript,javascript,前端,开发语言)