Ajouter ou modifier un paramètre de requête URL avec JavaScript

Concept et utilisation

La fonction urlQuerySet() permet d'ajouter ou de modifier des paramètres de requête à une URL.

Fonction

urlQuerySet()

Ajoute ou modifie des paramètres de requête d'URL.

Syntaxe
urlQuerySet(parametres, url);
Paramètres
parametres(Object)

Le paramètre parametres de la fonction urlQuerySet() définit un object de paramètres de requêtes à ajouter ou modifier dans une URL.

url(String)

Le paramètre url de la fonction urlQuerySet() définit l'URL contenant les paramètres de requêtes à ajouter ou modifier.
Si ce paramètre est omis, l'URL de la page sera utilisée.

Exemple de modification des paramètres de requête d'une URL

var parametres = {
  'cle1': 'valeur1',
  'cle2': 'valeur2'
};
var url = 'https://www.domain.ext/';

urlQuerySet(parametres, url);

// renvoie : 'https://www.domain.ext/?cle1=valeur1&cle2=valeur2'

Code source de la fonction

function urlQuerySet(a, b) {
  var c = JSON.parse(JSON.stringify(a)),
      d = ('' + (b || window.location.href)).split('#'),
      e = d[0].split('?'),
      f = e[0],
      g = '?';
  if (d[1]) {
    var p = ('' + e[1]).split('&');
    if (p[0]) {
      var i, j, k;
      for (i = 0, j = p.length; i < j; i++){
        k = p[i].split('=');
        if (typeof k[0] === 'string' && typeof a[k[0]] === 'undefined') {
          c[k[0]] = k[1];
        }
      }
    }
  }
  for (i in c) {
    g += i + '=' + ((typeof c[i] === 'string') ? encodeURIComponent(c[i]) : true) + '&';
  }
  return f + g.replace(/\&$/,'') + (d[1] ? '#' + d[1] : '');
}
^