一般情况下,我们需要读取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:貌似代码方式不会截断代码,可视化编辑器去编辑的话会把内部函数截断了。。