js獲取url參數值


今天碰到要在一個頁面獲取另外一個頁面url傳過來的參數,一開始很本能的想到了用 split("?")這樣一步步的分解出需要的參數。

后來想了一下,肯定會有更加簡單的方法的!所以在網上找到了兩個很又簡單實用的方法,mark下

方法一:正則分析法

function  getQueryString(name) {
     var  reg =  new  RegExp( "(^|&)"  + name +  "=([^&]*)(&|$)" "i" );
     var  r = window.location.search.substr(1).match(reg);
     if  ( r !=  null  ){
        return  unescape(r[2]);
     } else {
        return  null ;
    
  }

 //但是在使用的過程中,發現其在獲取中文參數的時候,獲取到的值是亂碼的

 //解決辦法:將解碼方式unscape換為decodeURI
 //原因:瀏覽器會將url中的中文參數進行encodeURI編碼,所以要通過js使用decodeURI進行解碼

 

這樣調用:

alert(GetQueryString("參數名1"));
alert(GetQueryString("參數名2"));
alert(GetQueryString("參數名3"));

方法二:

<span style="font-size: 16px;"><Script language="javascript">

function GetRequest() {

   var url = location.search; //獲取url中"?"符后的字串

   var theRequest = new Object();

   if (url.indexOf("?") != -1) {

      var str = url.substr(1);

      strs = str.split("&");

      for(var i = 0; i < strs.length; i ++) {

         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);

      }

   }

   return theRequest;

}

</Script></span>

這樣調用

<Script language="javascript">
var Request = new Object();
Request = GetRequest();
var 參數1,參數2,參數3,參數N;
參數1 = Request['參數1'];參數2 = Request['參數2'];參數3 = Request['參數3'];參數N = Request['參數N'];
</Script>

方法三:

/** 
 * 獲取指定的URL參數值 
 * URL:http://www.quwan.com/index?name=tyler 
 * 參數:paramName URL參數 
 * 調用方法:getParam("name") 
 * 返回值:tyler 
 */ 
function getParam(paramName) { 
    paramValue = "", isFound = !1; 
    if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) { 
        arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&"), i = 0; 
        while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++ 
    } 
    return paramValue == "" && (paramValue = null), paramValue 
} 

方法四:

function getUrlVars(){ 
  var vars = [], hash; 
  var hashes = window.location.href.slice(window.location.href.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; 
} 

調用方法

 var params=getUrlVars();
 var value= params[params[0]] ;
 

其他參數獲取介紹: 
//設置或獲取對象指定的文件名或路徑。
alert(window.location.pathname);

//設置或獲取整個 URL 為字符串。
alert(window.location.href);

//設置或獲取與 URL 關聯的端口號碼。
alert(window.location.port);

//設置或獲取 URL 的協議部分。
alert(window.location.protocol);

//設置或獲取 href 屬性中在井號“#”后面的分段。
alert(window.location.hash);

//設置或獲取 location 或 URL 的 hostname 和 port 號碼。
alert(window.location.host);

//設置或獲取 href 屬性中跟在問號后面的部分。
alert(window.location.search);

 

打賞

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2022 CODEPRJ.COM