javascript獲取url連結傳遞的指定引數的值

antzone發表於2017-03-17

使用url傳遞引數這個自然不用多說,請看本站的連結地址大多都是如此,既然傳遞引數,那麼肯定就需要獲取這個引數的值,下面介紹一下如何使用js獲取傳遞的指定引數的值,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function request(paras,url){
  //var url=location.href;
  var paraString=url.substring(url.indexOf("?") + 1, url.length).split("&");
  var paraObj = {}
  for (i=0;i<paraString.length;i++) {
    var j=paraString
    paraObj[j.substring(0,j.indexOf("=")).toLowerCase()]=j.substring(j.indexOf("=")+1,j.length);
  }
  var returnValue=paraObj[paras.toLowerCase()];
  if(typeof(returnValue)=="undefined") {
    return "";
  } 
  else {
    return returnValue;
  }
}
var urlStr="softwhy.com?a=1&b=2";
console.log(request("a",urlStr));

以上程式碼實現了我們的要求,注意程式碼的註釋部分//var url=location.href,如果要獲取當前頁的連結地址傳遞的指定引數,就可以使用此註釋程式碼,而不必通過函式傳遞連結引數。

程式碼註釋:

1.function request(paras,url){},此函式用來獲取指定url引數的值,此函式具有兩個引數,第一個引數是要獲取的值的引數,第二個引數是url地址。

2.var paraString=url.substring(url.indexOf("?") + 1, url.length).split("&"),此程式碼將傳遞的引數/引數值對作為陣列元素儲存在陣列中。substring()用來擷取從問號開始到url結尾的字串(不包含問號)。

3.var paraObj = {},建立一個空物件。

4. for (i=0;i<paraString.length;i++) {},遍歷陣列中的元素。

5.var j=paraString,陣列的值賦值給變數j。

5.paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length),araString每一個元素都是是"a=2"此類形式,此段程式碼以等號左邊的內容為物件paraObj的屬性,以右邊的內容作為對應的屬性值,也就是以引數名稱為物件屬性,引數值為物件屬性值。

6.var returnValue=paraObj[paras.toLowerCase()],獲取指定引數的值。

7.if(typeof(returnValue)=="undefined"),判斷此引數值是否存在,如果不存在返回空字元。

相關閱讀:

1.location.href屬性可以參閱location.href一章節。

2.substring()函式可以參閱javascript substring()一章節。  

3.indexOf()函式可以參閱javascript String indexOf()一章節。

4.toLowerCase()函式可以參閱javascript toLowerCase()一章節。  

5.typeof運算子可以參閱javascript typeof 一章節。

相關文章