您的位置:首页 > Web前端 > JavaScript

javascript获取地址栏参数

2014-11-04 11:12 561 查看
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的方法,使它更灵活、高效。
[align=left]Request = {[/align]
[align=left]QueryString : function(item){[/align]
[align=left]var svalue = location.search.match(new[/align]
[align=left]RegExp('[\?\&]' + item + '=([^\&]*)(\&?)','i'));[/align]
[align=left]return svalue ? svalue[1] : svalue;[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left]var key = Request.QueryString('key');[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: