VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile

Hàm javacript thực hiện thêm params vào đường dẫn url

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