diff --git a/src/bootstrap-table.js b/src/bootstrap-table.js index a652e60e8..b32510a3f 100644 --- a/src/bootstrap-table.js +++ b/src/bootstrap-table.js @@ -3068,16 +3068,8 @@ class BootstrapTable { if (params && params.pageSize) { this.options.pageSize = params.pageSize } - if (params && params.query) { - const url = new URL(this.options.url) - const urlParams = new URLSearchParams(url.search) - - for (const [key, value] of Object.entries(params.query)) { - urlParams.set(key, value) - } - url.search = urlParams.toString() - this.options.url = url.toString() + this.options.url = Utils.addQueryToUrl(this.options.url, params.query) } this.trigger('refresh', this.initServer(params && params.silent)) diff --git a/src/utils/index.js b/src/utils/index.js index 1b90fa17f..2ffbc8cbd 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -824,5 +824,16 @@ export default { d.innerHTML = html return d.childNodes + }, + + addQueryToUrl (url, query) { + const hashArray = url.split('#') + const [baseUrl, search] = hashArray[0].split('?') + const urlParams = new URLSearchParams(search) + + for (const [key, value] of Object.entries(query)) { + urlParams.set(key, value) + } + return `${baseUrl}?${urlParams.toString()}#${hashArray.slice(1).join('#')}` } }