2012-03-10 2 views
0

Мой URL является:Jquery/Javascript получить Params из окна localtion

http://localhost:3000/?sort=rating 

Параметр sort является динамическим, и я хотел бы, чтобы добавить его к другому URL.

В моей JavaScript У меня есть:

window.location.pathname + '.js?page=' + currentPage 

Как добавить параметр sort в конце?

Пример:

window.location.pathname + '.js?page=' + currentPage + &sortparam 

В этом случае было бы:

window.location.pathname + '.js?page=' + currentPage + '&sort=rating' 
+0

Хотите просто заменить '' с '&' или я недоразумение ваш вопрос? – pimvdb

+0

Я просто хочу включить сортировку параметров в вызов ajax. –

+0

Я нашел, что могу использовать window.location.search, но тогда мне нужно заменить? с & –

ответ

2

Вот то, что вы ищете:

How can I get query string values in JavaScript?

В вашем случае:

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

var sortparam = getParameterByName("sort"); 
window.location.pathname + '.js?page=' + currentPage + '&sort='+sortparam 
+0

безопасно ли, думая, что кто-то может избежать javascript в param? –

+1

есть небольшая опечатка «& sort = 'sortparam», она должна быть «& sort =' + sortparam –

+0

Я не знаю вашего алгоритма сортировки и что именно вы делаете с sortparam. Но значение в javascript-коде может быть изменен пользователем (расширение Chrome, firebug, ...) –

0
window.location.pathname + '.js?page=' + currentPage + 
    "&" + location.search.match(/(sort=.*?)&|$/)[1] 
+0

получить предупреждение и неопределенный –

1

Вот еще одна, с несколько более общей обертке:

function getParams() { 

    var params = window.location.search.substring(1).split('& '), 
    i = 0, 
    pair = null, 
    result = {}; 

    while (pair = params[i++]) { 
    pair = pair.split('='); 
    result[pair[0]] = decodeURIComponent(pair[1]); 
    } 

    return result; 
} 

alert(getParams().page); 
Смежные вопросы