To, czego naprawdę chcesz, to wtyczka jQuery URL Parser . Dzięki tej wtyczce uzyskanie wartości określonego parametru adresu URL (dla bieżącego adresu URL) wygląda następująco:
$.url().param('foo');
Jeśli chcesz obiekt z nazwami parametrów jako kluczami i wartościami parametrów jako wartości, po prostu wywołaj param()
bez argumentu, na przykład:
$.url().param();
Ta biblioteka działa również z innymi adresami URL, nie tylko bieżącym:
$.url('http://allmarkedup.com?sky=blue&grass=green').param();
$('#myElement').url().param(); // works with elements that have 'src', 'href' or 'action' attributes
Ponieważ jest to cała biblioteka analizująca adresy URL, możesz również uzyskać inne informacje z adresu URL, takie jak określony port lub ścieżka, protokół itp:
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'
Ma również inne funkcje, sprawdź stronę główną, aby uzyskać więcej dokumentów i przykładów.
Zamiast pisać własny parser URI dla tego konkretnego celu, który w pewnym sensie działa w większości przypadków używać rzeczywistego parsera URI. W zależności od odpowiedzi kod z innych odpowiedzi może zwrócić 'null'
zamiast null
, nie działa z pustymi parametrami ( ?foo=&bar=x
), nie może parsować i zwracać wszystkich parametrów naraz, powtarza pracę, jeśli wielokrotnie pytasz URL o parametry itp.
Użyj rzeczywistego analizatora składni URI, nie wymyślaj własnego.
Dla tych, którzy są niechętni do jQuery, dostępna jest wersja wtyczki, która jest czystym JS .