Ajouter un paramètre à l'URL courante avec JavaScript

Publié le 27/02/2019 • Mis à jour le 27/02/2019


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Voici une manière propre d'y arriver en utilisant l'objet JavaScript URL. Dans ce snippet : 1) On récupère l'URL courante du navigateur. 2) On créé un objet URL avec l'url que nous venons de récupérer. 3) Nous lui ajoutons et lui assignons des paramètres GET. 4) Enfin, nous changons l'URL du navigateur avec ce que nous venons de construire et ce sans recharger la page. Et voilà! 😉

PS : Veuillez noter que si vous rafraichissez la page, the paramètre id sera de nouveau ajouté à l'URL mais pas le paramètre foo car nous utilisons pour ce dernier la fonction set qui l'empêche donc d'être ajouté plusieurs fois. (la plupart du temps nous aurons donc besoin de cette fonction set)


/**
 * J'utilise un module JavaScript afin d'isoler chaque snippet dans un fichier.
 * C'est en fait un mixin Vue.js. Utilisez le code appelé par la fonction mounted()
 * ou snippetXX().
 */
export default {
  data: {
    id: 17
  },
  methods: {
    snippet17 () {
      const urlStr = window.location.href
      const urlObj = new URL(urlStr)
      urlObj.searchParams.append('foo', 'bar')
      urlObj.searchParams.append('id', this.id)
      urlObj.searchParams.set('foo', 'bar2')
      history.replaceState({}, '', urlObj.toString())
      console.log('Refresh the page and check the URL! 🧐')
    }
  },
  mounted () {
    if (this.isArticle(this.id)) {
      this.snippet17()
    }
  }
}

 Plus sur Stackoverflow  Snippet aléatoire