JS來(lái)動(dòng)態(tài)的修改url實(shí)現(xiàn)對(duì)url的增刪查改

字號(hào):


    易賢網(wǎng)網(wǎng)校上線了!
    >>>點(diǎn)擊進(jìn)入<<<
    網(wǎng)校開(kāi)發(fā)及擁有的課件范圍涉及公務(wù)員、財(cái)會(huì)類(lèi)、外語(yǔ)類(lèi)、外貿(mào)類(lèi)、學(xué)歷類(lèi)、
    職業(yè)資格類(lèi)、計(jì)算機(jī)類(lèi)、建筑工程類(lèi)、等9大類(lèi)考試的在線網(wǎng)絡(luò)培訓(xùn)輔導(dǎo)。
    通過(guò)get方式提交post表單等方式來(lái)動(dòng)態(tài)修改url存在諸多的不妥,因此,想到了通過(guò)JS來(lái)動(dòng)態(tài)的修改url,來(lái)實(shí)現(xiàn)對(duì)url的增刪查改。
    雖然可以通過(guò)get方式提交post表單等方式來(lái)動(dòng)態(tài)修改url,但如果多個(gè)按鈕能并行提交時(shí),寫(xiě)多個(gè)大體相同,又有些細(xì)節(jié)差異的表單,難免有些不妥,因此,想到了通過(guò)JS來(lái)動(dòng)態(tài)的修改url,來(lái)實(shí)現(xiàn)對(duì)url的增刪查改。
    <script>
    var LG=(function(lg){
    var objURL=function(url){
    this.ourl=url||window.location.href;
    this.href="";//?前面部分
    this.params={};//url參數(shù)對(duì)象
    this.jing="";//#及后面部分
    this.init();
    }
    //分析url,得到?前面存入this.href,參數(shù)解析為this.params對(duì)象,#號(hào)及后面存入this.jing
    objURL.prototype.init=function(){
    var str=this.ourl;
    var index=str.indexOf("#");
    if(index>0){
    this.jing=str.substr(index);
    str=str.substring(0,index);
    }
    index=str.indexOf("?");
    if(index>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[i].split("=");
    this.params[kv[0]]=kv[1];
    }
    }
    else{
    this.href=this.ourl;
    this.params={};
    }
    }
    //只是修改this.params
    objURL.prototype.set=function(key,val){
    this.params[key]=val;
    }
    //只是設(shè)置this.params
    objURL.prototype.remove=function(key){
    this.params[key]=undefined;
    }
    //根據(jù)三部分組成操作后的url
    objURL.prototype.url=function(){
    var strurl=this.href;
    var objps=[];//這里用數(shù)組組織,再做join操作
    for(var k in this.params){
    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;
    }
    return strurl;
    }
    //得到參數(shù)值
    objURL.prototype.get=function(key){
    return this.params[key];
    }
    lg.URL=objURL;
    return lg;
    }(LG||{}));
    var myurl=new LG.URL(window.location.href);
    myurl.remove("b"); //刪除了b
    alert(myurl.get ("a"));//取參數(shù)a的值,這里得到1
    myurl.set("a",23); //修改a的值為23
    alert (myurl.url());
    </script>