Передача данных методом GET на языке Javascript

К сожалению, на javascript нет готовой функции, позволяющей получать данные методом GET. Но такая функция действительно очень даже нужная. Поэтому я ее напишу. Итак, постановка задачи: написать функцию get('var'), которая возвращала бы значение переменной 'var', передаваемое методом get:

function get(n){

/*  1 ) содержание нашей адресной строки можно получить через свойство location обьекта window .  Содержание адресной строки обычно имеет вид: http://site.ru/doc.html?var1=value1&var2=value2&var3=value3... */

adres=window.location.toString();

/* 2)  Ищем в переменной  adres знак "?" и вырезаем все, что после него. */

var=adres.substring(adres.indexOf("?")+1); // это и есть значения наших переменных. (var1=value1&var2=value2&var3=value3... )

/*  3) Ищем интересующую нас переменную */

pos=var.indexOf("&"+n+"="); // запоминаем сколько знаков от начала строки до знака & , после которого название нашей переменной.

/* 4) И, наконец, вырезаем нужное значение */

val=var.substring(pos+n.length+2); //  длина названия переменной + 2 символа ( & и = ). После этого обрезания остается (value2&var3=value3... )

return val.substring(0,val.indexOf("&")); // Возвращаем полученое значение. Т.е. функция вернет значение до следующего знака &.

}

Вот почти и все. Осталось исправить логические ошибки:

Итого, сложив все вместе и проведя минимизацию,  получаем следующее:


function get(n){ 
a=window.location.toString(); 
a="&"+a.substring(a.indexOf("?")+1);
p=a.indexOf("&"+n+"="); 
a=p==-1?'':a.substring(p+n.length+2); 
return a.indexOf("&")>=0?a.substring(0,a.indexOf("&")):a;
}


Готово!  Пользуйтесь на здоровье.

При печати статьи на другом сайте, не забывайте указывать первоисточник.

Если есть вопросы или замечания - пишите об этом в письме

 

Алексей Конан: создание веб сайтов и мобильных приложений
Телефон в Санкт-Петербурге: +7 901 3718106