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);
初次写博客,希望大家多多指教。