Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Параметры из строки адреса (https://javascript.ru/forum/misc/29024-parametry-iz-stroki-adresa.html)

Bebarr Swallow 11.06.2012 20:13

Параметры из строки адреса
 
Как правильно получать "GET" параметры (те которые - http://anysite.com/?some=123&another=true)

До этого времени я использую только такой подход:
(location.href).match(/link=([^&]+)/)[1]


И ясное дело что это полный trash. Может есть встроенное средство?

Amphiluke 11.06.2012 20:36

location.search даст вам строку запроса целиком (от вопроса включительно и далее). Но отдельные параметры (some, another) все равно придется выковыривать вручную.

Bebarr Swallow 11.06.2012 20:42

Цитата:

Сообщение от Amphiluke (Сообщение 180886)
location.search даст вам строку запроса целиком (от вопроса включительно и далее). Но отдельные параметры (some, another) все равно придется выковыривать вручную.

Ясно, спасибо.

Bebarr Swallow 11.06.2012 20:45

Мой результат такой:
var param = [], locSearch = location.search;
if(locSearch != "") {
  param = (locSearch.substr(1)).split("&");
  for(var x = 0; x < param.length; x++) {
    var temp = param[x].split("=");
    param[temp[0]] = temp[1];
  };
};


Только вот сразу отмечу что я пока не взял во внимание '#'. location.search не берет во внимание данные начиная с '#'. И это хорошо.

UPD: Вышло что-то очень смешное. В результате получился массив, в котором также содержаться объекты.

При обращении к переменной param через консоль:
param // return ["ech=1", "psi=OyLWT-qYJIzPsgbiwbnODw.1339433538360.3", "emsg=NCSR", "noj=1", "ei=OyLWT-qYJIzPsgbiwbnODw"]

В тоже время доступны и объекты:
param.psi // return "OyLWT-qYJIzPsgbiwbnODw.1339433538360.3"


Вот я и думаю - это хорошо или плохо? Добавить ли прилагательный массив?

Amphiluke 11.06.2012 21:02

Цитата:

Сообщение от Bebarr Swallow
Только вот сразу отмечу что я пока не взял во внимание '#'.

В каком смысле? Часть URL, которая содержит якорь, не включается в location.search.


Часовой пояс GMT +3, время: 05:19.