У меня есть URL-адрес, который выглядит так: http://www.my-site.com/#key=kj123asj
. Я хотел бы получить key
с помощью javascript.Как использовать javascript или jquery для извлечения параметров из URL-адреса?
Любая помощь приветствуется.
У меня есть URL-адрес, который выглядит так: http://www.my-site.com/#key=kj123asj
. Я хотел бы получить key
с помощью javascript.Как использовать javascript или jquery для извлечения параметров из URL-адреса?
Любая помощь приветствуется.
var matches = location.href.match(/(key=)([a-z0-9]+)$/i);
Переменная matches
будет массив и спички [2] будет содержать значение ключа.
Оба ответили здесь: http://www.programmingfacts.com/2010/04/23/url-variables-javascriptjquery/
Эта библиотека JavaScript может разобрать строки запроса в standard format, то есть:
http://www.my-site.com/?key=kj123asj
код, чтобы получить key
будет:
var qs = new Querystring();
var key = qs.get("key");
Вы можете получить доступ ко всему 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"
Это должно начаться, по крайней мере.
$.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');
Кажется, что каждый указывает вам на код, который ссылается на строку запроса.
Предполагая, что ваши параметры находятся в фрагменте, а не в строке запроса, как в примере, который вы указали, вы можете использовать свойство 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']);