2012-03-10 35 views
0

我的網址是:jQuery的/ JavaScript的獲得PARAMS從窗口當前位置

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 2012-03-10 21:32:05

+0

我只想在ajax調用中包含params排序。 – 2012-03-10 21:33:12

+0

我發現我可以使用window.location.search但我需要替換?與& – 2012-03-10 21:41:21

回答

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? – 2012-03-10 21:49:07

+1

有一個小的錯字「'&sort ='sortparam」它應該是「'&sort ='+ sortparam – 2012-03-10 21:51:07

+0

我不知道你的排序算法和你正在做的sortparam。但值的JavaScript代碼可以被用戶更改(Chrome擴展程序,螢火蟲,...) – 2012-03-10 21:53:13

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

get alert&undefined – 2012-03-10 21:46:00

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);