javascript擷取URL參數與參數值的範例程式碼_javascript技巧

來源:互聯網
上載者:User
複製代碼 代碼如下:

<script>
                  function goto_url(url){
                      var new_url = "http://shop.usteel.com/index.php?app=list_release";
                      var d_date  = getParameter("date",url);
                      if(d_date != '' ){
                          new_url += "&"+d_date;
                      }
                      var species  = getParameter("species",url);
                      if(species != ''){
                          new_url += "&"+species;
                      }

                      window.open(new_url);

                  }
                  //javascript擷取指定參數及其對應的值 
                  function getParameter(paraStr, url) 
                  { 
                      var result = ""; 
                      //擷取URL中全部參數列表資料 
                      var str = "&" + url.split("?")[1]; 
                      var paraName = paraStr + "="; 
                      //判斷要擷取的參數是否存在 
                      if(str.indexOf("&"+paraName)!=-1) 
                      { 
                          //如果要擷取的參數到結尾是否還包含“&” 
                          if(str.substring(str.indexOf(paraName),str.length).indexOf("&")!=-1) 
                          { 
                              //得到要擷取的參數到結尾的字串 
                              var TmpStr=str.substring(str.indexOf(paraName),str.length); 
                              //截取從參數開始到最近的“&”出現位置間的字元 
                              result=TmpStr.substr(TmpStr.indexOf(paraName),TmpStr.indexOf("&")-TmpStr.indexOf(paraName));   
                          } 
                          else 
                          {   
                              result=str.substring(str.indexOf(paraName),str.length);   
                          } 
                      }   
                      else 
                      {   
                          result="";   
                      }   
                      return (result.replace("&",""));   
                  } 
                  </script>

下面例子很完整 經測試
複製代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <title>javascript擷取URL參數和參數值</title> 
    <script type="text/javascript"> 
    <!-- 
    var url = "http://www.baidu.com/?age=25&k=1&site=asp&abc=123;" 

    //javascript擷取指定參數及其對應的值 
    function getParameter(paraStr, url) 
    { 
        var result = ""; 
        //擷取URL中全部參數列表資料 
        var str = "&" + url.split("?")[1]; 
        var paraName = paraStr + "="; 
        //判斷要擷取的參數是否存在 
        if(str.indexOf("&"+paraName)!=-1) 
        { 
            //如果要擷取的參數到結尾是否還包含“&” 
            if(str.substring(str.indexOf(paraName),str.length).indexOf("&")!=-1) 
            { 
                //得到要擷取的參數到結尾的字串 
                var TmpStr=str.substring(str.indexOf(paraName),str.length); 
                //截取從參數開始到最近的“&”出現位置間的字元 
                result=TmpStr.substr(TmpStr.indexOf(paraName),TmpStr.indexOf("&")-TmpStr.indexOf(paraName));   
            } 
            else 
            {   
                result=str.substring(str.indexOf(paraName),str.length);   
            } 
        }   
        else 
        {   
            result="無此參數";   
        }   
        return (result.replace("&",""));   
    } 

    //調用方法:var 變數名 = getParameter("要擷取的參數名", URL地址) 
    var r = getParameter("age",url); 

    //測試輸出,結果是:site=popasp 
    alert(r); 
    //根據得到的結果可以使用 
    var pName = r.split("=")[0]; //擷取參數名 
    var pValue = r.split("=")[1]; //擷取參數值 

    //測試輸出: 
    alert("參數名:" + pName + "\n\n" + "參數值:" + pValue); 

    //其他實際應用: 
    //可以根據需要,配合以下方法實現自己要實現的功能; 
    //var hostname = location.hostname; //擷取當前網域名稱(不包含http://) 
    //var localurl = location.href;   //擷取當前完整的URL地址資訊(包含http://,網域名稱,路徑,具體檔案和全部傳遞參數) 
    //var referurl = document.referrer; //擷取上一頁完整的URL資訊(包含http://,網域名稱,路徑,具體檔案和全部傳遞參數) 

    //--> 
    </script> 
    </head> 

    <body> 
    </body> 
    </html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.