javascript 取得 url 的 查询参数

javascript 获得 url 的 查询参数

function URLGetArgs() {
}
/**
 *  获得url的查询参数数组(是一个map)<br>
 *
 * @param lu  "方法重载":{<br>
 *      1:传入某一个location对象(不一定是当前窗口,也可能是一个frame),则返回此window窗口的location的args<br>
 *      2:传入url字符串,则返回本url的args<br>
 *      3:o==null||o==undefined||o==""||o==0,则返回默认当前window窗口的location的args<br>
 * }
 * @return object.
 */
URLGetArgs.getArgs = function(lu) {
    var search,param,args_o = {};
    if (lu) {
        if (lu["href"])search = lu.search.substring(1)
        else search = lu.substring(lu.indexOf("?") != -1 ? lu.indexOf("?") : lu.indexOf("#"), lu.length);
    } else
        search = window.location.search.substring(1);

    var params_a = search.split("&");
    for (var i = 0,index; i < params_a.length; i++) {
        param = params_a[i];
        if ("-1" == (index = param.indexOf("="))) continue;
        args_o[param.substring(0, index)] = decodeURIComponent(param.substring(++index));
    }
    return args_o;
};


/**
 *测试
 */
var url = "http://www.google.com.hk/#hl=zh-CN&source=hp&q=%E8%AF%95%E8%AF%95&btnG=Google+%E6%90%9C%E7%B4%A2&oq=%E8%AF%95%E8%AF%95&aq=f&aqi=&aql=&gs_sm=s&gs_upl=3006215l3006215l0l3006987l1l1l0l0l0l0l0l0ll0l0&fp=295b9acfbdcda405&biw=1366&bih=382";

//-----------------------------------
var args = URLGetArgs.getArgs(url) || URLGetArgs.getArgs(location) || URLGetArgs.getArgs();
alert("获得某个参数值:如source-->" + args.source);