JS獲取URL信息類 主要功能有: 1.獲取URL基本信息,包括:網(wǎng)址,協(xié)議,端口號等。 2.地址欄獲取參數(shù)。 3.將json格式的參數(shù)對象轉(zhuǎn)換成字符串。
//獲取URL信息 var shaoURL = shaoURL || {}; (function (n){ var d = { pathname:window.location.pathname, //設(shè)置或獲取對象指定的文件名或路徑。 href:window.location.href, //設(shè)置或獲取整個 URL 為字符串。 port:window.location.port, //設(shè)置或獲取與 URL 關(guān)聯(lián)的端口號碼。 protocol:window.location.protocol.split(":")[0], //設(shè)置或獲取 URL 的協(xié)議部分。 host:window.location.host, //設(shè)置或獲取 location 或 URL 的 hostname 和 port 號碼 hash:window.location.hash, //設(shè)置或獲取 href 屬性中在井號“#”后面的分段 param:window.location.search, //設(shè)置或獲取 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轉(zhuǎn)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 將要轉(zhuǎn)為URL參數(shù)字符串的對象 //key URL參數(shù)字符串的前綴 //encode true/false 是否進(jìn)行URL編碼,默認(rèn)為true //return URL參數(shù)字符串 //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轉(zhuǎn)url字符串 //param 將要轉(zhuǎn)為URL參數(shù)字符串的對象 //key URL參數(shù)字符串的前綴 //return URL參數(shù)字符串 //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); 初次寫博客,希望大家多多指教。 |
|