2016-04-29 76 views
0

我想獲得ULR參數,但我的代碼不運行,因爲在調試時顯示我的錯誤是:Cannot read property 'split' of undefined 我不知道我在做什麼錯誤。 例如:default.html?pid=405我需要獲取JavaScript變量405的值。這是我正在使用的代碼:使用Javascript獲取URL參數

<script type="text/javascript"> 
    function getUrlParameters(parameter, staticURL, decode) { 
     var currLocation = (staticURL.length) ? staticURL : window.location.search, 
      parArr = currLocation.split("?")[1].split("&"), 
      returnBool = true; 

     for (var i = 0; i < parArr.length; i++) { 
      parr = parArr[i].value.split("="); 
      if (parr[0] == parameter) { 
       return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 
       returnBool = true; 
      } else { 
       returnBool = false; 
      } 
     } 

     if (!returnBool) return false; 
    } 
</script> 

<script type="text/javascript"> 
    function runDepo() 
    { 
     var idParameter = getUrlParameters("pid", "", true); 
    } 

有人可以幫助我嗎?提前致謝。

+0

哪條線是拋出該錯誤刪除.value? –

+0

可能重複的[如何在JavaScript中獲取查詢字符串值?](http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript) – Aeolingamenfel

+0

parr = parArr [I] .value.split( 「=」); – Lanshore

回答

2

剛剛從parr = parArr[i].value.split("=");

function getUrlParameters(parameter, staticURL, decode) { 
 
     var currLocation = (staticURL.length) ? staticURL : window.location.search, 
 
      parArr = currLocation.split("?")[1].split("&"), 
 
      returnBool = true; 
 

 
     for (var i = 0; i < parArr.length; i++) { 
 
      parr = parArr[i].split("="); 
 
      if (parr[0] == parameter) { 
 
       return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 
 
       returnBool = true; 
 
      } else { 
 
       returnBool = false; 
 
      } 
 
     }; 
 

 
     if (!returnBool) return false; 
 
    }; 
 
    
 
    document.getElementById('Result').value = getUrlParameters("pid", "default.html?pid=405", true); 
 

 
    alert(getUrlParameters("pid", "default.html?pid=405", true));
PID : <input type="text" id="Result" placeholder="Result">

+0

我試過這個,但是我應該編寫這個'alert(getUrlParameters(「pid」,「default.html?pid = 405」,true));'有沒有什麼辦法不必編寫它? – Lanshore

+0

@Lanshore不,它只是用於測試功能,但你想在哪裏顯示結果? –

+0

發佈這個答案,我不能回答自己,我自己解決它。 – Lanshore