Set o aggiornare un URL/Parametro QueryString e aggiorna l'URL utilizzando la cronologia HTML.replaceState()
si può provare qualcosa di simile:
var updateQueryStringParam = function (key, value) {
var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
urlQueryString = document.location.search,
newParam = key + '=' + value,
params = '?' + newParam;
// If the "search" string exists, then build params from it
if (urlQueryString) {
keyRegex = new RegExp('([\?&])' + key + '[^&]*');
// If param exists already, update it
if (urlQueryString.match(keyRegex) !== null) {
params = urlQueryString.replace(keyRegex, "$1" + newParam);
} else { // Otherwise, add it to end of query string
params = urlQueryString + '&' + newParam;
}
}
window.history.replaceState({}, "", baseUrl + params);
};
'/ ([? &] z) = ([^ # &]*)/g; 'deve essere usato invece di'/([? &] Z) = ([^ &]*)/g;', perché altrimenti potrebbe sovrascrivere il frammento. – Zulakis
@Zulakis Buon punto, post aggiornato. :) – BuddhiP
Soluzione breve e buona :) –