Kode ini sangat sederhana. Ide utamanya adalah mengurai parameter url menjadi objek js, dan kemudian sangat mudah untuk menambah, menghapus, memodifikasi, dan memeriksa.
Copy kode kodenya sebagai berikut:
var LG=(fungsi(lg){
var objURL=fungsi(url){
this.ourl=url||window.location.href;
this.href="";//?Bagian depan
this.params={};//objek parameter url
this.jing="";//#dan bagian berikut
ini.init();
}
//Analisis url dan dapatkan? Bagian depan disimpan di this.href, parameter diurai menjadi objek this.params, dan # dan berikut ini disimpan di this.jing
objURL.prototipe.init=fungsi(){
var str=ini.kami;
var indeks=str.indexOf("#");
jika(indeks>0){
this.jing=str.substr(indeks);
str=str.substring(0,indeks);
}
indeks=str.indexOf("?");
jika(indeks>0){
this.href=str.substring(0,indeks);
str=str.substr(indeks+1);
var bagian=str.split("&");
for(var i=0;i<bagian.panjang;i++){
var kv=bagian[0].split("=");
ini.params[kv[0]]=kv[1];
}
}
kalau tidak{
this.href=ini.kami;
ini.params={};
}
}
//Ubah saja this.params
objURL.prototype.set=fungsi(kunci,val){
this.params[kunci]=val;
}
//Setel saja this.params
objURL.prototype.remove=fungsi(kunci){
this.params[kunci]=tidak terdefinisi;
}
//Url setelah operasi terdiri dari tiga bagian
objURL.prototipe.url=fungsi(){
var strrl=ini.href;
var objps=[];//Gunakan organisasi array di sini, lalu lakukan operasi penggabungan
for(var k di this.params){
if(ini.params[k]){
objps.push(k+"="+ini.params[k]);
}
}
if(objps.panjang>0){
strrl+="?"+objps.join("&");
}
if(ini.jing.panjang>0){
strrl+=ini.jing;
}
kembali menyerang;
}
//Dapatkan nilai parameter
objURL.prototype.get=fungsi(kunci){
kembalikan ini.params[kunci];
}
lg.URL=objURL;
kembali lg;
}(LG||{}));
LG hanyalah namespace JS pribadi saya, tidak ada yang lain. Panggilan:
Copy kode kodenya sebagai berikut:
var myurl=new LG.URL("http://www.baidu.com?a=1");
myurl.set("b","halo"); //b=halo ditambahkan
peringatan (myurl.url());
myurl.remove("b"); //Dihapusb
alert(myurl.get("a"));//Dapatkan nilai parameter a, di sini kita mendapatkan 1
myurl.set("a",23); //Ubah nilai a menjadi 23
peringatan (myurl.url());