코드는 매우 간단합니다. 주요 아이디어는 url 매개변수를 js 객체로 구문 분석한 다음 여기에 메모를 추가, 삭제, 수정하는 것이 매우 편리합니다.
다음과 같이 코드 코드를 복사합니다.
var LG=(함수(lg){
var objURL=함수(url){
this.ourl=url||window.location.href;
this.href="";//?앞부분
this.params={};//url 매개변수 객체
this.jing="";//#및 다음 부분
this.init();
}
//URL을 분석하고 가져오나요? 앞부분은 this.href에 저장되고 매개변수는 this.params 객체로 구문 분석되며 #과 다음은 this.jing에 저장됩니다.
objURL.prototype.init=function(){
var str=this.ourl;
var index=str.indexOf("#");
if(인덱스>0){
this.jing=str.substr(index);
str=str.substring(0,index);
}
index=str.indexOf("?");
if(인덱스>0){
this.href=str.substring(0,index);
str=str.substr(index+1);
var parts=str.split("&");
for(var i=0;i<parts.length;i++){
var kv=parts[0].split("=");
this.params[kv[0]]=kv[1];
}
}
또 다른{
this.href=this.ourl;
this.params={};
}
}
//이것을 수정하세요.params
objURL.prototype.set=function(key,val){
this.params[키]=발;
}
//이것을 설정하세요.params
objURL.prototype.remove=function(키){
this.params[key]=정의되지 않음;
}
//작업 후의 URL은 세 부분으로 구성됩니다.
objURL.prototype.url=function(){
var strurl=this.href;
var objps=[];//여기서 배열 구성을 사용한 다음 조인 작업을 수행합니다.
for(this.params의 var k){
if(this.params[k]){
objps.push(k+"="+this.params[k]);
}
}
if(objps.길이>0){
strurl+="?"+objps.join("&");
}
if(this.jing.length>0){
strurl+=this.jing;
}
반환 strurl;
}
//매개변수 값 가져오기
objURL.prototype.get=function(키){
return this.params[키];
}
lg.URL=objURL;
LG를 반환;
}(LG||{}));
LG는 단지 내 개인적인 공통 JS 네임스페이스일 뿐이고 다른 것은 아닙니다. 부르다:
다음과 같이 코드 코드를 복사합니다.
var myurl=new LG.URL("http://www.baidu.com?a=1");
myurl.set("b","hello"); //b=hello를 추가했습니다.
경고(myurl.url());
myurl.remove("b"); //삭제됨 b
Alert(myurl.get ("a"));//매개변수 a의 값을 가져옵니다. 여기서는 1을 얻습니다.
myurl.set("a",23); //a 값을 23으로 수정합니다.
경고(myurl.url());