一般情况下,我们需要读取url参数或者hash值之类,都是通过location对象来取得的。
那为什么大家都用正则表达式去匹配呢?
会不会有舍近取远的嫌疑?
?
要充分利用原有的资源!
?
function KLocation(url){ ??? var uri = url ? url : window.location; ??? if(typeof uri !== "object") throw "NOT URL OBJECT"; ??? var obj= {}; ??? for(var property in uri){ ??????? obj[property] = uri[property]; ??? } ??? function splitQuery(str){ ??????? var temp = {}; ??????? if(str && str.length > 1){ ??????????? var args = str.substring(1).split("&"); ??????????? for(var i=0,len=args.length;i<len;i++){ ??????????????? temp[args[i].split("=")[0]] = decodeURI(args[i].split("=")[1]); ??????? } ??????? } ??????? return temp; ??? } ??? obj.hash = splitQuery(obj.hash); ??? obj.search = splitQuery(obj.search) ??? return obj; }
//href="test.html?a=test#b=1&c=2" //var t = KLocation(); //alert(t.hash.b); //alert(t.search.a);
貌似代码有问题,被截断了。
?
PS:貌似代码方式不会截断代码,可视化编辑器去编辑的话会把内部函数截断了。。