Такого позорища я не встречал конечно давно, реки поноса к берегам 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 валяется все где попало .. тьфу.. еще раз словарный понос посетил меня.