纠结问题:
有时候需要在页面获取Location中参数,Google到了不少结果,看了下代码,没有找到很满意的。
毛委员说 自己动手 丰衣足食 还是自己写个吧
URL分析:
敬上代码:
/**
* location.js
* A location search access API
* Copyfree and USE AT YOUR OWN RISK
* Author: Fuwei Chin
* Date: Thu, 24 Oct 2013 01:41:09 GMT
*/
(function(window,undefined){
var ArrayForEach=Array.prototype.forEach||function(fn, sc){
var a=this,l=a.length|0,i;
for(i=0;i<l;i+=1)fn.call(sc, a[i], i, a);
};
var ObjectGetOwnPropertyNames=Object.getOwnPropertyNames||function(o) {
var a=[],p;
for(p in o)if(o.hasOwnProperty(p))a.push(p);
return a;
};
var location=window.location,params={};
ArrayForEach.call(location.search.substr(1).split("&"),function(slice,index){
var p=slice.split("="),name=decodeURIComponent(p[0]),value=decodeURIComponent(p[1]);
params.hasOwnProperty(name)?params[name].push(value):params[name]=[value];
});
function getParameter(name){return params.hasOwnProperty(name)?params[name][0]:null;}
function getParameterValues(name){return params.hasOwnProperty(name)?params[name]:[];}
function getParameterNames(){return ObjectGetOwnPropertyNames(params);}
function getParameterMap(){return params;}
location.getParameter=getParameter;
location.getParameterValues=getParameterValues;
location.getParameterNames=getParameterNames;
location.getParameterMap=getParameterMap;
})(window);