使用Javascript获得网页中通过GET方法提交的参数

下面我将写出一个函数,用来获取GET方法提交的参数

function getParameter(parameterName)
{
    var string = window.location.search;
    var indexStart = string.indexOf(parameterName+"=");
    if(indexStart==-1)
        return false;
    var result = string.slice(indexStart+parameterName.length+1);
    var indexEnd = result.indexOf("&");
    if(indexEnd!=-1)
        result = result.slice(0,indexEnd);
    
    return decodeURI(result);
}
完整代码

下面我将一步步讲解每步的作用。

假设我们的URL是www.****.com?a=1&bc=23&d=5,而我们想要取bc的值

var string = window.location.search;

  这一步,将URL中“?”后面的字符串,也就是"a=1&bc=23&d=5"保存在变量string中。

var indexStart = string.indexOf(parameterName+"=");
if(indexStart==-1)
     return false;

  这一步,将寻找"bc="在string中首次出现的位置,如果没有找到"bc=",那么将结束函数并返回false。

var result = string.slice(indexStart+parameterName.length+1);

  这次,我们将"bc="后面的所有字符都保存在result变量中。当然这只是我们最终结果的开头部分。

var indexEnd = result.indexOf("&");
    if(indexEnd!=-1)
        result = result.slice(0,indexEnd);

  这次我们来寻找result中结束的地方,通常来讲都是都是"&"符号作为结束的地方。当然,如果本身就是在string中作为最后一个参数,比如"d=5"这个,那么我们之前的result就已经是正确的结果了,不需要这一步了。

return decodeURI(result);

  最后我们返回result作为最终的结果。由于如果参数中又中文的话,会出现乱码,所以我们在这里加上一个decodeURI函数来返回正确的中文字符。

好了,到这里,我们就已经大功告成了!

 

posted @ 2015-07-20 01:57  ProgramNoob  阅读(934)  评论(0编辑  收藏  举报