157 votes

Comment obtenir la chaîne de requête de l'URL actuelle avec JavaScript ?

J'ai une URL comme celle-ci :

http://localhost/PMApp/temp.htm?ProjectID=462

Ce que j'ai besoin de faire, c'est de récupérer les détails après le ? (chaîne d'interrogation) - c'est-à-dire ProjectID=462 . Comment puis-je obtenir cela en utilisant JavaScript ?

Voici ce que j'ai fait jusqu'à présent :

var url = window.location.toString();
url.match(?);

Je ne sais pas quoi faire ensuite.

0 votes

0 votes

@Cupcake : Cette question concerne l'extraction des paramètres, celle-ci ne concerne que l'obtention des paramètres. location.search

0 votes

Voter pour rouvrir, le duplicata marqué est une demande de bibliothèque, alors que cette question vise à obtenir du code js.

6voto

Vous pouvez l'utiliser pour trouver directement la valeur via le nom du paramètre.

const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('myParam');

4voto

Anupam Kansal Points 41

Vous pouvez utiliser cette fonction pour séparer une chaîne de caractères de ?id=.

 function myfunction(myvar){
  var urls = myvar;
  var myurls = urls.split("?id=");
  var mylasturls = myurls[1];
  var mynexturls = mylasturls.split("&");
  var url = mynexturls[0];
  alert(url)
}
myfunction(window.top.location.href);
myfunction("http://www.myname.com/index.html?id=dance&emp;cid=in_social_facebook-hhp-food-moonlight-influencer_s7_20160623");

voici le violon

4voto

Vishal P Gothi Points 125
  window.location.href.slice(window.location.href.indexOf('?') + 1);

4voto

Nurul Huda Points 71

Vous pouvez simplement utiliser URLSearchParams() .

Voyons, nous avons une page avec une url :

  • https://example.com/?product=1&category=game

Sur cette page, vous pouvez obtenir la requête chaîne de caractères en utilisant window.location.search et ensuite les extraire avec URLSearchParams() classe.

const params = new URLSearchParams(window.location.search)

console.log(params.get('product')
// 1

console.log(params.get('category')
// game

Un autre exemple utilisant une url dynamique (ne provenant pas de window.location ), vous pouvez extraire l'url en utilisant l'objet URL.

const url = new URL('https://www.youtube.com/watch?v=6xJ27BtlM0c&ab_channel=FliteTest')

console.log(url.search)
// ?v=6xJ27BtlM0c&ab_channel=FliteTest

Il s'agit d'un simple extrait de travail :

const urlInput = document.querySelector('input[type=url]')
const keyInput = document.querySelector('input[name=key]')
const button = document.querySelector('button')
const outputDiv = document.querySelector('#output')

button.addEventListener('click', () => {
    const url = new URL(urlInput.value)
    const params = new URLSearchParams(url.search)
    output.innerHTML = params.get(keyInput.value)
})

div {
margin-bottom: 1rem;
}

<div>
  <label>URL</label> <br>
  <input type="url" value="https://www.youtube.com/watch?v=6xJ27BtlM0c&ab_channel=FliteTest">
</div>

<div>
  <label>Params key</label> <br>
  <input type="text" name="key" value="v">
</div>

<div>
  <button>Get Value</button>
</div>

<div id="output"></div>

2voto

Anthony Grist Points 25966

Vous pouvez utiliser le search de l window.location pour obtenir la partie "requête" de l'URL. Notez qu'il inclut le point d'interrogation ( ?) au début, au cas où cela affecterait la façon dont vous souhaitez l'analyser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X