JavaScript сам по себе не имеет ничего встроенного для обработки параметров строки запроса.
Код, запущенный в (современном) браузере, вы можете использовать объект URL
(который является частью API, предоставляемого браузерами для JS):
Для более старых браузеров (включая Internet Explorer) вы можете использовать этот polyfill или код из исходной версии этого ответа, предшествующий URL
:
Вы можете получить доступ к location.search
, который даст вам от символа ?
до конца URL-адреса или начала идентификатора фрагмента (#foo), в зависимости от того, что произойдет раньше.
Тогда вы можете разобрать это с помощью:
function parse_query_string(query) {
var vars = query.split("&");
var query_string = {};
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
var key = decodeURIComponent(pair[0]);
var value = decodeURIComponent(pair[1]);
// If first entry with this name
if (typeof query_string[key] === "undefined") {
query_string[key] = decodeURIComponent(value);
// If second entry with this name
} else if (typeof query_string[key] === "string") {
var arr = [query_string[key], decodeURIComponent(value)];
query_string[key] = arr;
// If third or later entry with this name
} else {
query_string[key].push(decodeURIComponent(value));
}
}
return query_string;
}
var query_string = "a=1&b=3&c=m2-m3-m4-m5";
var parsed_qs = parse_query_string(query_string);
console.log(parsed_qs.c);
Вы можете получить строку запроса из URL текущей страницы с помощью:
var query = window.location.search.substring(1);
var qs = parse_query_string(query);