2013-10-31 21 views
-1

我會有這樣的URL:如何使用Javascript從URL中提取值?

http://website/index.html?id=1234&type=something

的標識和類型傳遞將根據用戶確實在另一端有什麼不同。

使用JavaScript,我想要得到的id和類型被用作變量,像這樣:

var theID = 1234
var theType = something

但我不知道如何從拉這些值網址並設置上面的值。我怎樣才能做到這一點?

+0

重複:http://stackoverflow.com/questions/901115/how-can-i-get-query - 字符串值 – DarkBee

+1

http://papermashup.com/read-url-get-variables-withjavascript/ – davibq

+0

@davibq - 謝謝,這對我所需要的是完美的。我不想將任何值傳遞給該函數,並且此代碼直接從URL中獲取。謝謝! – ZeekLTK

回答

2

試試這個

function qs(url, key) { 
    var vars = [], hash; 
    var hashes = url.slice(url.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[key]; 
} 

var url = YourUrl; 
alert(qs(url,'id')); 

DEMO

1

我UTIL功能,它有點髒,但能夠完成任務。沒有必要拆分數組只有幾個indexOf函數。如果你想UTF8解碼值使用decodeURIComponent(STR)或ISO1傳統解碼使用decodeURI(STR)

// parse parameter value from url (case sensitive) 
function getURLParam(strURL, strKey) { 
    // http://mywebapp/do.url?key1=val1&key2=val2 
    var idx = strURL.indexOf('?'); 
    if (idx < 0) return ""; // no params 

    // "&key1=val1&key2=val2&" 
    strURL = "&" + strURL.substring(idx+1) + "&"; 
    idx = strURL.indexOf("&" + strKey + "="); 
    if (idx < 0) return ""; // param not found 

    // "&key1=val1&key2=val2&" -> "val1&key2=val2&" -> "val1" 
    strURL = strURL.substring(idx + strKey.length + 2); 
    idx = strURL.indexOf("&");  
    return strURL.substring(0, idx); 
}