Получение GET параметров из url с помощью javascript

Получение GET параметров с помощью javascriptСегодня решил написать функцию на javascript, которая может получать GET параметры из урла. Иногда это бывает полезно: получение параметров без использования PHP.
Функция получает параметры и упаковывает в ассоциативный массив вида [«имя переменной»=>»значение», «имя переменной 2″=>»значение 2»].

Функция получилась не большая, но может быть полезная. Ниже приведен код функции с подробными комментариями:

function getUrlVar(){
    var urlVar = window.location.search; // получаем параметры из урла
    var arrayVar = []; // массив для хранения переменных
    var valueAndKey = []; // массив для временного хранения значения и имени переменной
    var resultArray = []; // массив для хранения переменных
    arrayVar = (urlVar.substr(1)).split('&'); // разбираем урл на параметры
    if(arrayVar[0]=="") return false; // если нет переменных в урле
    for (i = 0; i < arrayVar.length; i ++) { // перебираем все переменные из урла
        valueAndKey = arrayVar[i].split('='); // пишем в массив имя переменной и ее значение
        resultArray[valueAndKey[0]] = valueAndKey[1]; // пишем в итоговый массив имя переменной и ее значение
    }
    return resultArray; // возвращаем результат
}

И пример использования этой функции:

// вывод в консоль массива со всеми переменными
console.log(getUrlVar());
// вывод сообщения со значением переменной "A"
var result = getUrlVar();
alert(result['A']);
Рассказать друзьям:


Получение GET параметров из url с помощью javascript: 5 комментариев

  1. Admin, у тебя код возвращает пустой массив. Ассоциативный массив есть объект, поэтому resultArray должен быть объявлен как пустой объект, а не массив. Если это исправить, все работает.

  2. Вы серьезно?) такой большой код для такой простой вещи?))

    function getUrlParams() {
    var url = window.location.search.match(/\?(.+)/)[1].split('&');
    var res = {};
    url.forEach(function(entry){
    res[entry.split('=')[0]] = entry.split('=')[1];
    });
    return res;
    }

    1. Эта короткая функция работает некорректно, если строка параметров пуста. Не рекомендую юзать, используйте исходный авторский вариант.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*