2010-12-17 80 views
2

我很喜歡JavaScript,並且想要使用Prototype JS Framework來獲取一些URL參數。 想象一下我對我目前的瀏覽器下面的網址:使用Prototype獲取來自當前URL的URL參數JavaScript

http://www.somewhere.com?param=abc 

我怎樣才能使用Prototype JS任何功能或效用的'param'價值?

+0

可能的重複[在JavaScrip中獲取查詢字符串值t](http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript) – 2011-12-29 15:25:13

回答

4

你真的不需要原型此:

function get_param(param) { 
    var search = window.location.search.substring(1); 
    var compareKeyValuePair = function(pair) { 
     var key_value = pair.split('='); 
     var decodedKey = decodeURIComponent(key_value[0]); 
     var decodedValue = decodeURIComponent(key_value[1]); 
     if(decodedKey == param) return decodedValue; 
     return null; 
    }; 

    var comparisonResult = null; 

    if(search.indexOf('&') > -1) { 
     var params = search.split('&'); 
     for(var i = 0; i < params.length; i++) { 
     comparisonResult = compareKeyValuePair(params[i]); 
     if(comparisonResult !== null) { 
      break; 
     } 
     } 
    } else { 
     comparisonResult = compareKeyValuePair(search); 
    } 

    return comparisonResult; 
} 

var param_value = get_param('param'); //abc 
+0

嗨雅各感謝您的回覆,但我想知道是否有任何實用程序提供的Prototype js for這個要求? – 2010-12-17 04:36:14

+0

@dprima沒有這樣做的工具,我知道。 – 2010-12-17 04:53:30

+0

哦,我明白了,thx jacob,你的答案和下面的tim都是真的,但是因爲你是第一個,所以你的答案被接受爲 – 2010-12-17 06:18:29

11

的Prototype.js確實提供了一個實用工具:

uri.toQueryParams(); 
4

擴大斯科特的回答是:把URL變量「的價值param'放入javascript變量'x'中,您可以使用Prototype,如下所示:

x = document.URL.toQueryParams().param; 
+0

只需編輯斯科特的答案,並將其添加到底部。 – screenmutt 2013-09-04 16:36:02