SOURCE

/*
获取参数字符串
if(指定参数名称){
    分割参数,并存入数组
    if(只有一个指定的参数){找到并输出参数值}
    else if(没有){输出空}
    else{输出"数组"值}
}else{
    if(没有参数){返回{}}
    else{返回参数"对象"}
}

*/
function getUrlParam(sUrl, sKey) {
    var param=sUrl.split('#')[0].split('?')[1];//去掉#后面的和网址部分,剩余参数部分
    var paramSplit=param.split('&');//把参数分割放进数组 {key1=1,key2=2...}
    if(sKey){//指定参数
        var paramArr=new Array();
        for(var i=0;i<paramSplit.length;i++){
            var tmp=paramSplit[i].split('=');//键值分离
            if(tmp[0]==sKey){
                paramArr.push(tmp[1]);  //要求的是返回数组
            }
        }
        if(paramArr.length==1){
            return paramArr[0];
        }else if(paramArr.length==0){
            return "";
        }else{
            return paramArr;
        }
    }else{ //不指定参数
        if(sUrl=="" || sUrl==undefined){
            return {};
        }else{//注意这里要求返回对象
            var paramObj=new Object();
            for(var i=0;i<paramSplit.length;i++){
                var tmp=paramSplit[i].split('=');
                if(!(tmp[0] in paramObj)){ //如果参数的键名不在对象的属性中就先添加
                    paramObj[tmp[0]]=[];
                }
                paramObj[tmp[0]].push(tmp[1]);
            }
        } 
        return paramObj;
    }
}
getUrlParam("http://www.baidu.com?key1=w&key2=han&key2=so&key3=ng","key1");
console 命令行工具 X clear

                    
>
console