コードは非常に単純で、主なアイデアは URL パラメータを JS オブジェクトに解析することであり、ここで追加、削除、変更、確認するのに非常に便利です。
次のようにコードをコピーします。
var LG=(関数(lg){
var objURL=関数(url){
this.ourl=url||window.location.href;
this.href="";//?フロント部分
this.params={};//url パラメータ オブジェクト
this.jing="";//#および以下の部分
this.init();
}
// URL を解析して get? 先頭は this.href に格納され、パラメータは this.params オブジェクトに解析され、# 以降は this.jing に格納されます。
objURL.prototype.init=function(){
var str=this.ourl;
varindex=str.indexOf("#");
if(インデックス>0){
this.jing=str.substr(index);
str=str.substring(0,index);
}
インデックス=str.indexOf("?");
if(インデックス>0){
this.href=str.substring(0,index);
str=str.substr(インデックス+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={};
}
}
// this.params を変更するだけです
objURL.prototype.set=function(key,val){
this.params[キー]=val;
}
// this.params を設定するだけです
objURL.prototype.remove=function(key){
this.params[キー]=未定義;
}
//操作後のURLは3つの部分で構成されます
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.length>0){
strurl+="?"+objps.join("&");
}
if(this.jing.length>0){
strurl+=this.jing;
}
strurl を返します。
}
//パラメータ値を取得する
objURL.prototype.get=function(key){
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());