Как использовать JavaScript или JQuery для получения параметров из URL? - PullRequest
2 голосов
/ 22 июля 2010

У меня есть URL, который выглядит так: http://www.my-site.com/#key=kj123asj. Я хотел бы получить key с помощью JavaScript.

Любая помощь приветствуется.

Ответы [ 6 ]

3 голосов
/ 23 июля 2010

Кажется, что все указывают на код, который ссылается на строку запроса.

Предполагая, что ваши параметры находятся во фрагменте, а не в строке запроса, как в приведенном вами примере, вы можете использовать свойство window.location.hashчтобы получить к ним доступ без разбора всего URL-адреса самостоятельно.

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

 var values = {},
  pairs = window.location.hash.substring(1).split('&'),
  pair;
 for (var i = 0, len = pairs.length; i < len; i++) {
  pair = pairs[i].split('=');
  values[pair[0]] = pair[1];
 }
 alert(values['key']);
2 голосов
/ 22 июля 2010

Эта библиотека JavaScript может анализировать строки запроса в стандартном формате , то есть:

http://www.my-site.com/?key=kj123asj

Код для получения key будет:

var qs = new Querystring();
var key = qs.get("key");
1 голос
/ 23 июля 2010
$.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];
  }
});

// Get object of URL parameters
var allVars = $.getUrlVars();

// Getting URL var by its nam
var byName = $.getUrlVar('name');
0 голосов
/ 22 июля 2010

Вы можете получить доступ ко всему URL из переменной window.location.href.После этого нужно просто найти в строке символ # или = и извлечь после него данные.Например:

var s = window.location.href;
var i = s.indexOf('=');
var value = s.substr(i+1);

Конечно, это дает вам только первое значение и работает, только если у вас есть только одно значение, которое вы хотите извлечь. Однако , вы можете иметь это одно значение в JSON-кодированном объекте, например так:

http://www.somewebsite.com/#data={key: 1293, foo: "bar"}

Затем выполните:

var map = JSON.parse(value);

Теперь вы можете использовать обычныйМетоды JavaScript для доступа к элементам:

var key = map['key'] // 1293
var foo = map['foo'] // "bar"

Это должно помочь вам начать, по крайней мере.

0 голосов
/ 22 июля 2010
0 голосов
/ 22 июля 2010
var matches = location.href.match(/(key=)([a-z0-9]+)$/i);

Переменная matches будет массивом, а совпадения [2] будут содержать значение ключа.

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