2010-09-03 45 views
3

我有以下幾點:如何在jquery ready函數中獲取URL參數?

$(document).ready(function() { 
window.location.href='http://target.SchoolID/set?text='; 
}); 

因此,如果有人使用URL等進入到一個頁面,上面提到的代碼:

Somepage.php ID = ABC123

我想要的文字變量在就緒函數讀取:abc123

任何想法?

回答

3

你不需要jQuery。你可以用純JS

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

做到這一點,那麼你可以得到的查詢字符串值是這樣的:

alert(getParameterByName('text'));

也看看這裏的其他方式和插件:How can I get query string values in JavaScript?

+0

增加了另一個答案如果你覺得它更新你的答案,我會刪除我的。感謝您的幫助代碼。 – ojblass 2015-06-02 19:49:25

3

檢查回答這個問題: How can I get query string values in JavaScript?

那個'會給你查詢字符串的id參數的值。

那麼你可以這樣做:

$(document).ready(function() { 
    var theId = getParameterByName(id) 
    var newPath = 'http://target.SchoolID/set?text=' + theId 
    window.location.href=newPath; 
}); 
0

爲了幫助那些希望人們在我即將有多個變量,並加強在此莫恩的答案是多個變量的代碼:

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