Hoe kan ik query string waarden krijgen in JavaScript?
Is er een plugin-loze manier om query string waarden op te halen via jQuery (of zonder)?
Zo ja, hoe? Zo nee, is er een plugin die dit wel kan?
2701
3
Update: Sep-2018
Je kunt URLSearchParams gebruiken, dat is eenvoudig en heeft fatsoenlijke (maar niet volledige) browserondersteuning.
Original
Je hebt jQuery niet nodig voor dat doel. Je kunt gewoon wat pure JavaScript gebruiken:
Gebruik:
Opmerking: Als een parameter meerdere keren voorkomt (
?foo=lorem&foo=ipsum
), krijg je de eerste waarde (lorem
). Hier is geen standaard voor en het gebruik varieert, zie bijvoorbeeld deze vraag: Autoritatieve positie van duplicate HTTP GET query keys.OPMERKING: De functie is hoofdlettergevoelig. Als je de parameternaam liever hoofdletterongevoelig hebt, voeg 'i' modifier toe aan RegExp
Dit is een update gebaseerd op de nieuwe URLSearchParams specs om hetzelfde resultaat beknopter te bereiken. Zie antwoord met de titel "URLSearchParams" hieronder.
Roshambo op snipplr.com heeft een eenvoudig script om dit te bereiken beschreven in Get URL Parameters with jQuery | Improved. Met zijn script krijg je ook gemakkelijk om uit te halen alleen de parameters die u wilt.
Hier's de essentie:
Dan haal je gewoon je parameters uit de query string.
Dus als de URL/query string
xyz.com/index.html?lang=de
was.Roep dan gewoon
var langval = $.urlParam('lang');
, en je'hebt het.UZBEKJON heeft hier ook een geweldige blog post over, Get URL parameters & values with jQuery.
Als je jQuery gebruikt, kun je een bibliotheek gebruiken, zoals jQuery BBQ: Back Button &; Query Library.
Bewerken: Deparam Voorbeeld toevoegen:
Als je gewoon JavaScript wilt gebruiken, kun je...
Vanwege de nieuwe HTML Geschiedenis API en in het bijzonder
history.pushState()
enhistory.replaceState()
, kan de URL veranderen waardoor de cache van parameters en hun waarden ongeldig worden.Deze versie zal de interne cache van parameters updaten elke keer als de geschiedenis verandert.