Quello che vuoi davvero è il plug-in Parser URL jQuery . Con questo plugin, ottenere il valore di un parametro URL specifico (per l'URL corrente) è simile al seguente:
$.url().param('foo');
Se vuoi un oggetto con nomi di parametro come chiavi e valori di parametro come valori, chiameresti param()
senza un argomento, come questo:
$.url().param();
Questa libreria funziona anche con altri URL, non solo quello corrente:
$.url('http://allmarkedup.com?sky=blue&grass=green').param();
$('#myElement').url().param(); // works with elements that have 'src', 'href' or 'action' attributes
Poiché si tratta di un'intera libreria di analisi dell'URL, puoi anche ottenere altre informazioni dall'URL, come la porta specificata, il percorso, il protocollo ecc:
var url = $.url('http://allmarkedup.com/folder/dir/index.html?item=value');
url.attr('protocol'); // returns 'http'
url.attr('path'); // returns '/folder/dir/index.html'
Ha anche altre funzionalità, controlla la sua homepage per ulteriori documenti ed esempi.
Invece di scrivere il proprio parser URI per questo scopo specifico che genere di opere in maggior parte dei casi, utilizzare un parser reale URI. A seconda della risposta, il codice di altre risposte può restituire 'null'
invece di null
, non funziona con parametri vuoti ( ?foo=&bar=x
), non può analizzare e restituire tutti i parametri contemporaneamente, ripete il lavoro se si interrogano ripetutamente l'URL per parametri ecc.
Usa un vero parser URI, non inventare il tuo.
Per chi è contrario a jQuery, esiste una versione del plugin che è JS puro .