在页面的开发中,经常需要用到地址栏里的一些参数,我封装了一个对应的方法,在这里介绍一下。
首先对页面的地址栏做个简单的介绍。以http://www.baidu.com/s?bs=javascript%BD%CC%B3%CC&f=8&wd=javascript%B8%DF%BC%B6%BD%CC%B3%CC&inputT=5405为例,前面的http://www.baidu.com/s为网站所在的域名信息。问号之后以&作为分隔符,采用了key=value的形式。如的第一个参数为bs,值为javascript%BD%CC%B3%CC,第二个参数为f,值为8等等。
1.获取地址栏的信息:window.location;
location 对象的默认属性就是 location.href,可以获取整个地址栏的信息。
2.location的search属性用于获取地址栏 信息中中跟在问号后面的部分的信息,包括问号,因此,location.search.substr(1)获取的即为问号以后的字符串了,仍以以上http://www.baidu.com/s?bs=javascript%BD%CC%B3%CC&f=8&wd=javascript%B8%DF%BC%B6%BD%CC%B3%CC&inputT=5405为例,这里通过location.search.substr(1),可以得到bs=javascript%BD%CC%B3%CC&f=8&wd=javascript%B8%DF%BC%B6%BD%CC%B3%CC&inputT=5405这个字符串了。
3.对字符串进行分割,采用的是string对象的split方法。以‘&’为分割符,分割后得到了一个数组,为[bs=javascript%BD%CC%B3%CC,f=8,wd=javascript%B8%DF%BC%B6%BD%CC%B3%CC,inputT=5405]
4.对数组进行遍历,将每个数组元素进行再次的分割,以'='为分隔符。例如,需要获取input参数对应的值:
var arr=[bs=javascript%BD%CC%B3%CC,f=8,wd=javascript%B8%DF%BC%B6%BD%CC%B3%CC,inputT=5405];
var len=arr.length;
for(var i=0; i<len; i++){
arr[i].split('=');
if(arr[i][0]=='input'){
return arr[i][1];
}
}
4.整理的代码如下:
function getAddressKey(key){
var myurl=location.search.substr(1);
var urlArray=myurl.split("&");
for(var i=0; i<urlArray.length; i++){
var url_value=urlArray[i].split("=");
if(url_value[0]==key){
return url_value[1];
}
}
}