2010-07-22 1 views

ответ

0
var matches = location.href.match(/(key=)([a-z0-9]+)$/i); 

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

2

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

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

код, чтобы получить key будет:

var qs = new Querystring(); 
var key = qs.get("key"); 
0

Вы можете получить доступ ко всему 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" 

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

1
$.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'); 
3

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

Предполагая, что ваши параметры находятся в фрагменте, а не в строке запроса, как в примере, который вы указали, вы можете использовать свойство 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']); 
Смежные вопросы