Deux individus assis à une table, utilisant des ordinateurs portables pour collaborer sur leurs projets

Manipuler les paramètres d'URL avec JavaScript

Publié le

Les paramètres d'URL jouent un rôle important dans la communication de données entre pages web. Cet article explique comment exploiter l'objet URLSearchParams pour lire, ajouter, et modifier dynamiquement les paramètres d'une URL en JavaScript. Vous découvrirez des cas d'utilisation pratiques et des exemples concrets.

💡 Pourquoi manipuler les paramètres d'URL ?

Les paramètres d'URL permettent de transmettre des informations directement dans l'adresse d'une page web, sans avoir à gérer des états complexes côté serveur. Ils sont couramment utilisés pour :

  • Filtrer des résultats (par exemple sur une boutique en ligne).
  • Partager des informations dynamiques (comme des données de formulaire pré-remplies).
  • Maintenir l'état d'une application web sans rechargement (SPA).

📑 Découvrir URLSearchParams

L'objet URLSearchParams offre une manière intuitive de manipuler les paramètres d'URL. Voici un exemple pour lire des paramètres d'une URL :

// Exemple d'URL : https://example.com?name=John&age=30
const params = new URLSearchParams(window.location.search);

const name = params.get('name'); // "John"
const age = params.get('age');   // "30"

console.log(name, age);

Ici, la méthode params.get() extrait la valeur d'un paramètre donné. Si le paramètre est absent, elle renvoie null.

🔧 Ajouter, modifier et supprimer des paramètres

URLSearchParams permet également d'ajouter, de modifier ou de supprimer des paramètres dynamiquement :

// Ajouter ou modifier un paramètre
params.set('page', 2); // ?name=John&age=30&page=2

// Supprimer un paramètre
params.delete('age'); // ?name=John&page=2

// Mettre à jour l'URL sans recharger la page
history.replaceState({}, '', `${location.pathname}?${params}`);

Ces manipulations permettent de mettre à jour l'URL de manière dynamique, sans recharger la page, un atout majeur pour les applications modernes.

🧪 Exemple pratique : Filtrer une liste avec les paramètres d'URL

Considérons un exemple où une liste d'articles est filtrée en fonction des paramètres dans l'URL. Voici la structure HTML :

<div class="filter-container">
    <label for="category">Catégorie :</label>
    <select id="category">
        <option value="all">Toutes</option>
        <option value="tech">Technologie</option>
        <option value="health">Santé</option>
    </select>
</div>

<ul class="article-list">
    <li data-category="tech">Article sur JavaScript</li>
    <li data-category="health">Article sur le bien-être</li>
    <li data-category="tech">Guide CSS</li>
</ul>

⚙️ Ajouter la logique JavaScript

Voici le code pour synchroniser l'URL avec la sélection du filtre et mettre à jour la liste des articles visibles :

// Sélection des éléments
const categorySelect = document.getElementById('category');
const articleList = document.querySelectorAll('.article-list li');

// Charger le filtre initial depuis l'URL
const params = new URLSearchParams(window.location.search);
const selectedCategory = params.get('category') || 'all';
categorySelect.value = selectedCategory;
filterArticles(selectedCategory);

// Mettre à jour les articles filtrés selon le choix
categorySelect.addEventListener('change', (e) => {
    const category = e.target.value;

    // Modifier l'URL
    params.set('category', category);
    history.replaceState({}, '', `${location.pathname}?${params}`);

    // Filtrer les articles
    filterArticles(category);
});

// Fonction de filtrage
function filterArticles(category) {
    articleList.forEach(article => {
        article.style.display = (category === 'all' || article.dataset.category === category) ? '' : 'none';
    });
}

🎨 Essayez l'exemple interactif !

Vous pouvez maintenant tester un exemple fonctionnel directement dans votre navigateur. Cliquez sur le lien ci-dessous pour accéder à la démonstration :

👉 Accéder à l'exemple interactif

Si vous souhaitez créer votre propre version, copiez le code HTML et JavaScript fourni ci-dessus dans un fichier .html. Ouvrez-le avec un serveur local et observez comment l'URL s'adapte lorsque vous changez les filtres, tout en mettant à jour dynamiquement la liste d'articles affichés.

📚 Sources

🏷️ Mots clés

JavaScript

🛠️ Donnons un coup de pouce à vos projets web !

Vous avez une idée ou un besoin précis pour votre site ou application web ? Que ce soit pour du développement, un audit SEO, ou encore un accompagnement technique, je suis là pour vous apporter des solutions adaptées et concrètes. Ensemble, faisons avancer votre projet.

Lancez votre projet dès maintenant
Une femme devant son ordinateur portable en train de mordre un crayon. Réaliser des tests d'intégration avec Jest

Apprenez à réaliser des tests d'intégration avec Jest en utilisant les mocks. Découvrez comment simuler des modules, configurer des tests et assurer la fiabilité de votre code.

Photo en noir et blanc d'un ordinateur portable posé sur un bureau, illustrant un environnement de travail minimaliste Comprendre try...catch : Un filet de sécurité pour votre code JavaScript

Apprenez à utiliser le bloc try...catch en JavaScript pour gérer les erreurs et améliorer la robustesse de vos applications.

Une personne en train de taper sur le clavier d'un ordinateur portable Minifier le CSS : Accélérez votre site avec un code optimisé

Découvrez comment et pourquoi minifier votre CSS pour améliorer les performances de votre site. Apprenez les bonnes pratiques pour un code CSS optimisé et performant.