Javascript 单击链接而不重新加载页面时,更改url查询字符串或追加(如果不存在)

Javascript 单击链接而不重新加载页面时,更改url查询字符串或追加(如果不存在),javascript,jquery,html,url,query-string,Javascript,Jquery,Html,Url,Query String,我正在尝试使用jQuery在不重新加载页面的情况下更改url查询字符串,链接可能如下:www.example.com/innerpage?tab=xyz¶=abc。。我想在单击innerpage内的链接时附加这些查询。因此,当复制链接并与其他人共享时,我将阅读这些查询以再次打开目标部分 function getParameterByName(name) { url = window.location.href; name = name.replace(/[\[\]

我正在尝试使用jQuery在不重新加载页面的情况下更改url查询字符串,链接可能如下:www.example.com/innerpage?tab=xyz¶=abc。。我想在单击innerpage内的链接时附加这些查询。因此,当复制链接并与其他人共享时,我将阅读这些查询以再次打开目标部分

function getParameterByName(name) {
      url = window.location.href;
      name = name.replace(/[\[\]]/g, "\\$&");
      var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
          results = regex.exec(url);
      if (!results) return null;
      if (!results[2]) return '';
      return decodeURIComponent(results[2].replace(/\+/g, " "));
}

$('.alink').click(function(e){
   e.preventDefault();
   var _link = $(this);
   var _target = _link.attr('href').substr('1');
 var target = $('div[id="'+_target+'"]');
  $('html, body').animate({
          scrollTop: target.offset().top
        }, 500);


    var urlq = getParameterByName('tab');
    if(urlq != null){
        location.href.replace("tab="+urlq, "tab="+_target);
    } else {
        location.href+= "?tab="+_target;
    }
    console.log(urlq);
});
在我的电脑上查看我的代码

但在重新加载之后,您应该检查参数并使用js滚动到block


但是在重新加载后,您应该检查参数并使用js滚动到块。

是的,我已经在读取查询字符串后进行了滚动。。谢谢是的,我已经在读取查询字符串后进行了滚动。。谢谢
  var queryString = 'yourblock1';
  var pageUrl = '?' + queryString;
  window.history.pushState('', '', pageUrl);