Разбор GET запросов на JavaScript
tags: ajax, javascript
GET запросы (запросы через адресную строку) можно легко разбирать при помощи JavaScript.
Продемонстрирую это на следующем примере:
напишите в адресной строке любые параметры в формате
Быть добру!
?key=val&key2=val2переменные GET запроса:
var param = new Array();
var get = location.search; // строка GET запроса
if (get != '') {
var tmp = get.substr(1).split('&'); // парсим переменные
var tmp2; // вспомагательная
for (var i in tmp) {
tmp2 = tmp[i].split('='); // разделяем ключ значение
param[tmp2[0]] = tmp2[1];
}
}
// вывод на экран
var div = document.getElementById('greq');
for (var key in param) {
div.innerHTML += "<br>"+key+" = "+param[key];
}
Быть добру!
posted on april 05, 2009,
updated on september 25, 2025
Комментарии
Отправка новых комментариев временно отключена. Извините, работаем над этим.
А вот как теперь кракозябры
%EF%E0%F0%E0%EC%E5%F2%F0 = %E7%ED%E0%F7%E5%ED%E8%E5
в нормальный текст превратить?
м.б. так: s = decodeURIComponent(s);
Так называемые "кракозябры" это Unicode-кодированные символы кириллицы. Преобразовать обратно в кириллические символы их можно с помощью встроенной функции - unescape().
а как сделать что бы тот же GET брался не из адресной строки а из подключения скрипта, т.е
<script type="text/javascript" src="скрипт.js?id=17&id=17"></script>
to Алексей: С помощью jQuery например так
var get = $('script[src*="скрипт.js"]').attr('src').replace(/[^\?]+\?/, '');
и далее по коду
Огроменное спасибо. чуть поковырял - все работает
Просто, лаконично, Работает!
ps: по рекламе нажал)
в случае если есть только ключ и нет значения, значение будет undefined
заменить строчку:
param[tmp2[0]] = tmp2[1];
на:
param[tmp2[0]] = (typeof tmp2[1] == 'undefined')?'':tmp2[1];
По поводу кракозябр: unescape() у меня почему-то неверно отработал, зато decodeURI() перевел все правильно!
Спасибо за статью, очень помогла