Tổng đài tư vấn: 033 688 8648
Hotline: 039 511 6390
updateQueryStringParameter (uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|#|$)", "i");
if (value === undefined) {
if (uri.match(re)) {
return uri.replace(re, '$1$2').replace(/[?&]$/, '').replaceAll(/([?&])&+/g, '$1').replace(/[?&]#/, '#');
} else {
return uri;
}
} else {
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
} else {
var hash = '';
if (uri.indexOf('#') !== -1) {
hash = uri.replace(/.*#/, '#');
uri = uri.replace(/#.*/, '');
}
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
return uri + separator + key + "=" + value + hash;
}
}
}
Thực hiện thêm params và gán lên url bằng hàm sau
setParamFilter(name, data){
// alert('data ===> ', data)
if (name && data != null) {
var arrStr = '';
if(Array.isArray(data)){
$.each(data, function(key, value) {
key == 0 ? arrStr += value : arrStr += ',' + value
});
}else{
var link = this.updateQueryStringParameter(document.URL, name, data)
window.history.pushState({ link: link }, null, link);
}
if (arrStr != '') {
var link = this.updateQueryStringParameter(document.URL, name, arrStr)
window.history.pushState({ link: link }, null, link);
}
}
},
Trong đó : name là trên của params, data là giá trị
ví dụ: https://vanhiep.net?name=data
Trong hàm trên sử dụng 2 hàm có sẵn trong javacript sau :
document.URL : để lấy đường dẫn hiện tại của trên thanh url của trình duyệt.
window.history.pushState : dùng để gán chuỗi params lên thanh url