http://gzycm520.blog.51cto.com/175220/71030方法一:

<script type="text/javascript">

<!--

function Request(strName){ 

var strHref = "www.QQView.com/index.htm?a=aaa&b=bbb&c=ccc"; 

var intPos = strHref.indexOf("?"); 

var strRight = strHref.substr(intPos + 1); 

var arrTmp = strRight.split("&"); 

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

var arrTemp = arrTmp[i].split("="); 

if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1]; 

return ""; 

}

alert(Request("a")); 

alert(Request("b")); 

alert(Request("c")); 

//-->

</script>

方法二:

<script type="text/javascript">

<!--

String.prototype.getQuery = function(name) { 

  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); 

  var r = this.substr(this.indexOf("\?")+1).match(reg); 

  if (r!=null) return unescape(r[2]); return null; 

var strHref = "www.QQView.com/index.htm?a=aaa&b=bbb&c=ccc"; 

alert(strHref.getQuery("a")); 

alert(strHref.getQuery("b")); 

alert(strHref.getQuery("c")); 

//-->

</script>


方法三:

<SCRIPT   language=javascript>

function geturl(){ 

  var   srcc   =   window.location;       //得到地址栏连接   

  srcc   =   srcc.toString()     //转换成string类型,可以省略   

  start   =   srcc.indexOf("#");       //返回"?"在字串中第一次出现的位置   

  end   =   srcc.length;     //字串的长度   

  var str;

  str=srcc.substring(start+1,end);     //得到部分字串   

  this.tciframe.location.href="地址?"+str;;

}

</SCRIPT>


 


 


利用javascript获取页面地址栏参数有很多种方式,大部分都是利用split将地址分割成数组。


这样做的缺点是不仅需要循环,还需要判断,找到各组value和key,很是麻烦。

这里推荐一种利用OO思想加上RegExp的方法,使它更灵活、高效。


Request = {


QueryString : function(item){


var svalue = location.search.match(new


RegExp('[\?\&]' + item + '=([^\&]*)(\&?)','i'));


return svalue ? svalue[1] : svalue;


}


}


var key = Request.QueryString('key');


作者:SVENNEE

本文采用​​知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议​​进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。