Dai un'occhiata all'articolo MDN su window.location
.
QueryString è disponibile in window.location.search
.
Soluzione che funziona anche nei browser legacy
MDN fornisce un esempio (non più disponibile nell'articolo di cui sopra) di come ottenere il valore di una singola chiave disponibile in QueryString. Qualcosa come questo:
function getQueryStringValue (key) {
return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
}
// Would write the value of the QueryString-variable called name to the console
console.log(getQueryStringValue("name"));
Nei browser moderni
Nei browser moderni hai la searchParams
proprietà dell'interfaccia URL, che restituisce un oggetto URLSearchParams . L'oggetto restituito ha una serie di metodi convenienti, incluso un metodo get. Quindi l'equivalente dell'esempio precedente sarebbe:
let params = (new URL(document.location)).searchParams;
let name = params.get("name");
L' interfaccia URLSearchParams può essere utilizzata anche per analizzare le stringhe in un formato querystring e trasformarle in un pratico oggetto URLSearchParams.
let paramsString = "name=foo&age=1337"
let searchParams = new URLSearchParams(paramsString);
searchParams.has("name") === true; // true
searchParams.get("age") === "1337"; // true
Si noti che il supporto del browser è ancora limitato su questa interfaccia, quindi se è necessario supportare browser legacy, attenersi al primo esempio o utilizzare un polyfill .