采用正则表达式获取地址栏参数或通过后台来获取地址栏参数
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
1、通过JS获取
调用方法:alert(GetQueryString("参数名"))
实例解析:
若地址栏的url为:Menu.aspx?Index=2&id=44
要想获取到id的值,那么调用上面的方法alert(GetQueryString("id")),则会弹出44,如果得到index的值,同上。
当然如果你没有传参数的话,比如你的地址是 Menu.aspx 后面没有参数,那强行输出调用结果有的时候会报错,现在就得判断一下:
1 var myurl = GetQueryString("Index"); 2 if (myurl != null && myurl.toString().length>1) { 3 alert(myurl) 4 }
2、通过后台获取
通过后台获取需要在第一个页面的ajax里把要用到的值通过url传过去
比如:Menu.aspx?Index=2&id=44&FromUserName=22
然后再第二个页面用隐藏域来获取
前台:<input type="hidden" id="hdStrWorklogID" runat="server" />
后台: hdStrWorklogID.Value = Request.QueryString["FromUserName"].ToString().Trim();
这样就可以获取到了,直接在js里调用隐藏域的值就可以了