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 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。