更改 url 查询字符串,或者在单击链接而不重新加载页面的情况下附加(如果不存在)



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

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);
});

在我的代码笔上查看我的代码

var queryString = 'yourblock1';
var pageUrl = '?' + queryString;
window.history.pushState('', '', pageUrl);

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

最新更新