jkeks блог


GET параметры в JavaScript



27.6.2011 702 просмотрa ;)


Такого позорища я не встречал конечно давно, реки поноса к берегам JavaScript.

Ну нету ни методов ни свойств объектов чтобы можно было легко и быстро получить параметр в GET запросе старницы.

http://jkeks.ru/test.php?a=1

И как для этого надо вывернуться ? Мне сразу вспомнился Perl, где все это делалось руками и ногами. В инете я нашел конечно сотню функций для разора location.search, но ведь стыдно должно быть, такой умный язык и такой фигни нет, вот что пришлось использовать:

var tmp = new Array();        // два вспомагательных
var tmp2 = new Array();        // массива
var param = new Array();
if(location.search != ») {
    tmp = (location.search.substr(1)).split(‘&’);    // разделяем переменные
    for(var i=0; i < tmp.length; i++) {
        tmp2 = tmp[i].split(‘=’);        // массив param будет содержать
        param[tmp2[0]] = tmp2[1];        // пары ключ(имя переменной)->значение
    }
alert(param[‘t’]);
}

ПОЗОР! ! ПОЗОРНЫЙ JAVASCRIPT !!!!!!!!!

Хуже того в позорнейшей библиотеке jQuery тоже не нашлось такой функции и метода для разора GET. Ну Позорники отличились конечно.

Зачем вообще разбирать GET  в JS ?

Да такой я, дурак, не хочу использовать PHP для этих целей, хочу у клиента все сделать и локально тестить без серверов и все держать в одном файле без 100500 вкраплений разных языков.

Но вот Вычудили где. Даже в позорном MooTools предусмотрели тип URI для разбора URI, а jQuery – не сделали, вот позорные какие. Другие же балбесы все же написали и пллагины и екстеншены для jQuery, но зачем ?

Вот один из примеров расширения jQuery для преобразования URL в ассоциативный массив.

$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

В результате получить параметры можно так:

var byName = $.getUrlVar('name');

Ну не дураки ли ?

Итак сложно, дак еще и усложнили. Нет, я всю вину такого безобразия перекладываю на плечи JavaScript и jQuery, стыд и срам!

AJAX – в народы ! … роды, у..ы, ы..

Теперь еще пару слов, плагин на jQuery для получения параметров таким образом:

$.url.param("itemID")

плагин тут:  jQuery-URL-Parser

и еще, нашел страницу в StackOverFlow на эту тему, вот там вариантов придостаточно:

http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript

Ройте, ройте.. Спасибо JavaScript, спасибо за сэкономленное время. А кстати, какого хрена нету CPAN для javaScript ? или оно как у PHP валяется все где попало .. тьфу.. еще раз словарный понос посетил меня.







Видеочат рулетка

jAntivirus Рейтинг@Mail.ru