Лучший способ получить значение заданного параметра URL с Javascript / jQuery? - PullRequest
2 голосов
/ 13 сентября 2009

Предположим, у вас есть URL:

http://www.example.com/whatever?this=that&where=when

Как бы вы извлекли значение параметра where (в данном случае when)?

Вот что я придумал - мне интересно, есть ли лучшее решение:

$.fn.url_param_value = function(param) {
  var url = $(this).attr('href');
  var regex = new RegExp(param + "=");

  return $.grep(url.split("?")[1].split("&"), function(a) {
    return a.match(regex);
    })[0].split("=")[1];
}

Ответы [ 3 ]

5 голосов
/ 13 сентября 2009

используйте jquery.query и получайте удовольствие :)) 1005 *

Вы можете просто использовать:

var w = $.query.get("where");
1 голос
/ 13 сентября 2009

Если вы остались без jQuery, вот функция, которую я использую:

function urlParam(name, w){
    w = w || window;
    var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)');
    var val = w.location.href.match(rx);
    return !val ? '':val[1];
}

w - необязательный параметр (по умолчанию окно), если вам нужно прочитать параметры iframe.

0 голосов
/ 14 сентября 2009

Я использую этот бит JavaScript из Netlobo.com

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

или, если вы ищете плагин, попробуйте jQuery URL Parser

* Редактировать: Хмм, нм. Думаю, предложение TheVillageIdiot самое лучшее и простое для jQuery: P ... ДА, я узнал что-то новое сегодня :) Но вы все равно должны проверить плагин, он хорош тем, что он вернется любая часть URL, включая данные из строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...