Snippet #28 ~ Javascript : Récupérer/Modifier les paramètres de la barre d’adresse

Bonne année 2017 bande de moules! Je vous souhaite plein de bonnes choses mais surtout beaucoup de blé, des putes et des black-jacks et une bonne santé ! (voilà pour commencer l’année en finesse!)

Comme je suis un chic type et parce que ça fait longtemps qu’on s’est pas vu je vous partage une ptite fonction maison pour ne plus se prendre la tête avec la récupération / définition des paramètres de la barre d’adresse en javascript.

Globalement la fonction permet de récupérer un paramètre avec

var valeur = parameter(‘nomParametre’);

De définir un paramètre (ou de le modifier si il existe) avec

parameter(‘nomParametre’,’valeurParametre’);

De supprimer un paramètre avec

parameter(‘nomParametre’,false);

La fonction est dispo ci dessous pour javascript et Jquery, je la trouve un peu longue si vous trouvez le moyen de la raccourcir (la fonction, je parle de la fonction…) n’hésitez pas à poster un commentaire.

Fonction Javascript natif

function parameter(name,value) {
	    var parameters = window.location.href.match(/[\\?&]([^&#]*)=([^&#]*)/g);
	    var data = {};
	    for (var key in parameters) {
	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
	        data[couple[0]] = couple[1];
	    }
	    if (value == null) 
	        return data[name] ? data[name] : null;
	    if (value != false) data[name] = value;
	    var url = '?';
	    for (var key in data) {
	        if (value == false && key == name) continue;
	        url += key + '=' + data[key]+'&';
	    }
	    window.history.pushState('', document.title, url.substring(0, url.length-1));
}

 

Extension Jquery

$.parameter = function (name,value) {
	    var parameters = window.location.href.match(/[\\?&]([^&#]*)=([^&#]*)/g);
	    var data = {};
	    for (var key in parameters) {
	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
	        data[couple[0]] = couple[1];
	    }
	    if (value == null) 
	        return data[name] ? data[name] : null;
	    if (value != false) data[name] = value;
	    var url = '?';
	    for (var key in data) {
	        if (value == false && key == name) continue;
	        url += key + '=' + data[key]+'&';
	    }
	    window.history.pushState('', document.title, url.substring(0, url.length-1));
}

 

 

2 réactions au sujet de « Snippet #28 ~ Javascript : Récupérer/Modifier les paramètres de la barre d’adresse »

  1. Tmos Réponse

    Ptin, ça c’est du déterrage de flux RSS ! 😀

    Cela dit, intéressant ta fonction, je mets de côté…

Répondre à Tmos Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.