javascript获取地址栏参数

时间:2023-11-24 11:36:08

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');