JS脚本获取URL信息的方法
JS获取URL信息类
主要功能有:
1.获取URL基本信息,包括:网址,协议,端口号等。
2.地址栏获取参数。
3.将json格式的参数对象转换成字符串。
//获取URL信息 var shaoURL = shaoURL || {}; (function (n){ var d = { pathname:window.location.pathname, //设置或获取对象指定的文件名或路径。 href:window.location.href, //设置或获取整个 URL 为字符串。 port:window.location.port, //设置或获取与 URL 关联的端口号码。 protocol:window.location.protocol.split(":")[0], //设置或获取 URL 的协议部分。 host:window.location.host, //设置或获取 location 或 URL 的 hostname 和 port 号码 hash:window.location.hash, //设置或获取 href 属性中在井号“#”后面的分段 param:window.location.search, //设置或获取 href 属性中跟在问号后面的部 referrer:document.referrer //获取来源页地址 }; n.get = function(){ var arrA = []; var arrB = []; for(var i in d){ arrA.push(i); arrB.push(d[i]); }; return { item:arrA, key:arrB }; }; n.getA = function(){ return d; }; n.getB = function(p){ return d[n.get().item[p]]; }; n.getC = function(key){ return d[key]; }; n.getD = function(key){ var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; }; n.getE = function(){ var r = window.location.hash; if(r!=null) return r.substr(1); return null; }; //json转url字符串 n.JsonToURL = function(o){ var str = ""; for(var key in o){ if(o[key]!=-1){ str += key + "=" + encodeURIComponent(o[key]) + "&"; } } str = str.substring(0,str.length-1); return str; }; //param 将要转为URL参数字符串的对象 //key URL参数字符串的前缀 //encode true/false 是否进行URL编码,默认为true //return URL参数字符串 //var obj = {name:"tom","class":{className:"class1"},classMates:[{name:"shao"}]}; //JsonParam(obj); n.JsonParam = function(param, key, encode) { if(param==null) return ''; var str = ''; var t = typeof (param); if (t == 'string' || t == 'number' || t == 'boolean') { str += '&' + key + '=' + ((encode==null||encode) ? encodeURIComponent(param) : param); } else { for (var i in param) { var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); str += '&' + n.JsonParam(param[i], k, encode); } } return str.substr(1); }; //json转url字符串 //param 将要转为URL参数字符串的对象 //key URL参数字符串的前缀 //return URL参数字符串 //var obj = {name:"tom","class":{className:"class1"},classMates:[{name:"shao"}]}; //parseParam(obj); n.parseParam = function(param,key){ var str = ""; if(param instanceof String || param instanceof Number|| param instanceof Boolean){ str += "&" + key + "=" + encodeURIComponent(param); } else { /* for(var i in param){ var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); str += '&' + parseParam(param[i], k); } */ $.each(param,function(i){ var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); str += '&' + n.parseParam(this, k); }); }; return str.substr(1); }; })(shaoURL);
初次写博客,希望大家多多指教。
赞 (0)