2009-10-26 3 views

ответ

2
(function(){ 

    var url = 'http://mydomain.com/?q=microsoft&p=next' 
    var s = url.search.substring(1).split('&'); 

    if(!s.length) return; 

    window.GET = {}; 

    for(var i = 0; i < s.length; i++) { 

     var parts = s[i].split('='); 

     GET[unescape(parts[0])] = unescape(parts[1]); 

    } 

}()) 

Думаю, что это будет работать ..

+2

'decodeURIComponent'. 'escape' /' unescape' почти всегда является ошибкой. – bobince

+0

Кроме того, это НЕ будет работать с URL-адресом, являющимся строкой. Поскольку он использует метод поиска, я предполагаю, что url должен быть window.location. Помимо этих двух проблем, кажется, работает нормально, и импорт библиотеки для этой задачи, безусловно, является излишним. – fotanus

5

Я использую библиотеку parseUri доступны здесь: http://stevenlevithan.com/demo/parseuri/js/

Это позволяет сделать именно то, что вы просите:

var uri = 'http://mydomain.com/?q=microsoft&p=next'; 
var q = uri.queryKey['q']; 
// q = 'microsoft' 
Смежные вопросы