欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jquery獲取url參數(shù)及url加參數(shù)的方法

 更新時間:2015年10月26日 09:32:12   投稿:mrr  
本文給大家介紹jquery獲取url參數(shù)及url參數(shù)的方法,在url中加參數(shù)的方法本文通過多種方式給大家介紹jquery獲取url參數(shù),感興趣的朋友一起學(xué)習(xí)學(xué)習(xí)吧

使用jquery獲取url以及使用jquery獲取url參數(shù)是我們經(jīng)常要用到的操作,下面通過文字說明加代碼分析的形式給大家解析,具體詳情請看下文。

1、jquery獲取url很簡單,代碼如下:

復(fù)制代碼 代碼如下:

window.location.href;

其實只是用到了javascript的基礎(chǔ)的window對象,并沒有用jquery的知識。

2、jquery獲取url參數(shù)比較復(fù)雜,要用到正則表達式,所以學(xué)好javascript正則式多么重要的事情

首先看看單純的通過javascript是如何來獲取url中的某個參數(shù):

  //獲取url中的參數(shù)
  function getUrlParam(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構(gòu)造一個含有目標(biāo)參數(shù)的正則表達式對象
   var r = window.location.search.substr(1).match(reg); //匹配目標(biāo)參數(shù)
   if (r != null) return unescape(r[2]); return null; //返回參數(shù)值
  }

通過這個函數(shù)傳遞url中的參數(shù)名就可以獲取到參數(shù)的值,比如url為

http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx

我們要獲取reurl的值,可以這樣寫:

復(fù)制代碼 代碼如下:

var xx = getUrlParam('reurl');

明白了javascript獲取url參數(shù)的方法,我們可以通過這個方法為jquery擴展一個方法來通過jquery獲取url參數(shù),下面的代碼為jquery擴展了一個getUrlParam()方法

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

為jquery擴展了這個方法了之后我們就可以通過如下方法來獲取某個參數(shù)的值了:

  

復(fù)制代碼 代碼如下:

 var xx = $.getUrlParam('reurl');

完整代碼:

 <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  $(function () {
   //方法二:
   (function ($) {
    $.getUrlParam = function (name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if (r != null) return unescape(r[2]); return null;
    }
   })(jQuery);
   //方法二:
   var xx = $.getUrlParam('reurl');
   //方法一:
   // var xx = getUrlParam('reurl');

   alert(xx);
  });
  //方法一:
  //獲取url中的參數(shù)
  function getUrlParam(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構(gòu)造一個含有目標(biāo)參數(shù)的正則表達式對象
   var r = window.location.search.substr(1).match(reg); //匹配目標(biāo)參數(shù)
   if (r != null) return unescape(r[2]); return null; //返回參數(shù)值
  }
 </script>

2014-4-23 修改

今天在用上面的方法獲取url中的參數(shù)時,url中傳遞的中文參數(shù)在解析的時候無論怎么測試,獲取的都是亂碼。經(jīng)過一番調(diào)試后發(fā)現(xiàn),我再傳遞參數(shù)時,對漢字編碼使用的是 encodeURI ,而上面的方法在解析參數(shù)編碼時使用的是unescape ,修改為 decodeURI 就可以了。

附: W3School中的介紹:

JavaScript unescape() 函數(shù)

unescape() 函數(shù)可對通過 escape() 編碼的字符串進行解碼。

參數(shù) 描述
string 必需。要解碼或反轉(zhuǎn)義的字符串。

說明

該函數(shù)的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字符序列(x 表示十六進制的數(shù)字),用 Unicode 字符 \u00xx 和 \uxxxx 替換這樣的字符序列進行解碼。

提示和注釋

注釋:ECMAScript v3 已從標(biāo)準(zhǔn)中刪除了 unescape() 函數(shù),并反對使用它,因此應(yīng)該用 decodeURI() 和 decodeURIComponent() 取而代之。

綜上: javascript對參數(shù)編碼解碼方法要一致:

escape()   unescape()

encodeURI()   decodeURI()

encodeURIComponent()    decodeURIComponent() 

網(wǎng)上找的另一種javascript獲取url中參數(shù)的方法:

<script language="JavaScript" type="text/javascript"> 
function GetUrlParms() 
{
 var args=new Object(); 
 var query=location.search.substring(1);//獲取查詢串 
 var pairs=query.split("&");//在逗號處斷開 
 for(var i=0;i<pairs.length;i++) 
 { 
  var pos=pairs[i].indexOf('=');//查找name=value 
   if(pos==-1) continue;//如果沒有找到就跳過 
   var argname=pairs[i].substring(0,pos);//提取name 
   var value=pairs[i].substring(pos+1);//提取value 
   args[argname]=unescape(value);//存為屬性 
 }
 return args;
}
var args = new Object();
args = GetUrlParms();
//如果要查找參數(shù)key:
if(args["id"]!=undefined)
{
//如果要查找參數(shù)key:
var value1 = args["id"] ;
alert(value1);
}</script>

 jquery 取url參數(shù)和在url加參數(shù)

(function ($) {
 $.extend({
  Request: function (m) {
   var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i"));
   return sValue ? sValue[1] : sValue;
  },
  UrlUpdateParams: function (url, name, value) {
   var r = url;
   if (r != null && r != 'undefined' && r != "") {
    value = encodeURIComponent(value);
    var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
    var tmp = name + "=" + value;
    if (url.match(reg) != null) {
     r = url.replace(eval(reg), tmp);
    }
    else {
     if (url.match("[\?]")) {
      r = url + "&" + tmp;
     } else {
      r = url + "?" + tmp;
     }
    }
   }
   return r;
  }

 });
})(jQuery);

使用方法

dev.zhang.com/IOF.Signup/index_uscn_chs.html?act=1

1、取值使用

$.Request("act") = 1

2、url加參數(shù)

$.UrlUpdateParams(window.location.href, "mid", 11111),

結(jié)果window.location.href?mid=11111

相關(guān)文章

最新評論