js
1.添加getsubUrl()函数
2,.添加getUrl()函数
用法:
var url = new URL(window.location.href);
url = url.getsubUrl("info","info.jsp",{
orderno:selectRow[selectRow.length-1].orderno,
isSave:'1'
})
var URL = function(param){
if(typeof param=="undefined"){
throw new Error("你需要传入一个param作为参数");
}
this.urlname=param;
}
URL.prototype = {
constructor:URL,
addsubUrl:function(filepath,filename){
var newvalue = filepath+"/"+filename;//info/info.jsp
var searchvalue = this.parseURL(this.urlname).file;
var Str = this.urlname;
//替换指定目录
this.urlname = Str.replace(searchvalue,newvalue)
return this.urlname;
},
getsubUrl:function(filepath,filename,obj){
this.addsubUrl(filepath,filename);
this.addArgs2(obj);
return this.urlname;
},
getUrl:function(obj){
//this.addsubUrl(filepath,filename);
this.addArgs2(obj);
return this.urlname;
},
parseURL:function parseURL(url) {
var a = document.createElement('a');
var url = (!url)?this.urlname:url;
a.href = url
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port,
query: a.search,
params: (function(){
var ret = {},
seg = a.search.replace(/^\?/,'').split('&'),
len = seg.length, i = 0, s;
for (;i<len;i++) {
if (!seg[i]) { continue; }
s = seg[i].split('=');
ret[s[0]] = s[1];
}
return ret;
})(),
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
hash: a.hash.replace('#',''),
path: a.pathname.replace(/^([^\/])/,'/$1'),
relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
segments: a.pathname.replace(/^\//,'').split('/')
};
},
addArg:function(key,value){
//this
if(this.urlname.indexOf('?')==-1){
this.urlname+='?';
}else{
this.urlname+="&";
};
this.urlname+=encodeURIComponent(key)+"="+encodeURIComponent(value);
return this.urlname;
},
addArgs2:function(obj){
// {key:"1",value:'2'}
for(var item in obj){
if( this.urlname.indexOf('?')==-1){
this.urlname+='?';
}else{
this.urlname+="&";
};
// item,obj[item]
this.urlname+=encodeURIComponent(item)+"="+encodeURIComponent(obj[item]);
}
},
addArgs:function(objArr){
// [{key:"1",value:'2'},obj2]
for(var i=0;i<objArr.length;i++){
if( this.urlname.indexOf('?')==-1){
this.urlname+='?';
}else{
this.urlname+="&";
};
this.urlname+=encodeURIComponent(objArr[i].key)+"="+encodeURIComponent(objArr[i].value);
}
return this.urlname;
},
getQueryString:function(key){
var str = this.getSearchString().substr(1);
var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)");
var strArray=str.match(reg);//返回一个数组
if(strArray!=null){
return unescape(strArray[2]);
}
return null;
},
getSearchString:function(){
var mark = this.urlname.indexOf('?');
if(mark!=-1){
return decodeURIComponent(this.urlname.substr(mark));
}else{
return '';
}
},
}