You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
1.8 KiB
90 lines
1.8 KiB
/* |
|
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. |
|
Available via Academic Free License >= 2.1 OR the modified BSD license. |
|
see: http://dojotoolkit.org/license for details |
|
*/ |
|
|
|
//>>built |
|
define("dojo/_base/url",["./kernel"],function(_1){ |
|
var _2=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),_3=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_4=function(){ |
|
var n=null,_5=arguments,_6=[_5[0]]; |
|
for(var i=1;i<_5.length;i++){ |
|
if(!_5[i]){ |
|
continue; |
|
} |
|
var _7=new _4(_5[i]+""),_8=new _4(_6[0]+""); |
|
if(_7.path==""&&!_7.scheme&&!_7.authority&&!_7.query){ |
|
if(_7.fragment!=n){ |
|
_8.fragment=_7.fragment; |
|
} |
|
_7=_8; |
|
}else{ |
|
if(!_7.scheme){ |
|
_7.scheme=_8.scheme; |
|
if(!_7.authority){ |
|
_7.authority=_8.authority; |
|
if(_7.path.charAt(0)!="/"){ |
|
var _9=_8.path.substring(0,_8.path.lastIndexOf("/")+1)+_7.path; |
|
var _a=_9.split("/"); |
|
for(var j=0;j<_a.length;j++){ |
|
if(_a[j]=="."){ |
|
if(j==_a.length-1){ |
|
_a[j]=""; |
|
}else{ |
|
_a.splice(j,1); |
|
j--; |
|
} |
|
}else{ |
|
if(j>0&&!(j==1&&_a[0]=="")&&_a[j]==".."&&_a[j-1]!=".."){ |
|
if(j==(_a.length-1)){ |
|
_a.splice(j,1); |
|
_a[j-1]=""; |
|
}else{ |
|
_a.splice(j-1,2); |
|
j-=2; |
|
} |
|
} |
|
} |
|
} |
|
_7.path=_a.join("/"); |
|
} |
|
} |
|
} |
|
} |
|
_6=[]; |
|
if(_7.scheme){ |
|
_6.push(_7.scheme,":"); |
|
} |
|
if(_7.authority){ |
|
_6.push("//",_7.authority); |
|
} |
|
_6.push(_7.path); |
|
if(_7.query){ |
|
_6.push("?",_7.query); |
|
} |
|
if(_7.fragment){ |
|
_6.push("#",_7.fragment); |
|
} |
|
} |
|
this.uri=_6.join(""); |
|
var r=this.uri.match(_2); |
|
this.scheme=r[2]||(r[1]?"":n); |
|
this.authority=r[4]||(r[3]?"":n); |
|
this.path=r[5]; |
|
this.query=r[7]||(r[6]?"":n); |
|
this.fragment=r[9]||(r[8]?"":n); |
|
if(this.authority!=n){ |
|
r=this.authority.match(_3); |
|
this.user=r[3]||n; |
|
this.password=r[4]||n; |
|
this.host=r[6]||r[7]; |
|
this.port=r[9]||n; |
|
} |
|
}; |
|
_4.prototype.toString=function(){ |
|
return this.uri; |
|
}; |
|
return _1._Url=_4; |
|
}); |
|
|
|
//# sourceURL=../../../../dojo/_base/url.js
|