获取地址栏中对应的参数

作者:朱峰日期:2011-06-02 10:33:50 点击:151

 在页面的开发中,经常需要用到地址栏里的一些参数,我封装了一个对应的方法,在这里介绍一下。

首先对页面的地址栏做个简单的介绍。以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];

         }

   }

}

上一篇: 百度的前端开发面试题

下一篇: 前端开发面试题(整理过的部分)