日期:2014-05-16  浏览次数:20390 次

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);