通過JS來動態修改url,實現對url的增刪查改_javascript技巧

來源:互聯網
上載者:User

雖然可以通過get方式提交post表單等方式來動態修改url,但如果多個按鈕能並行提交時,寫多個大體相同,又有些細節差異的表單,難免有些不妥,因此,想到了通過JS來動態修改url,來實現對url的增刪查改。

 <script>  var LG=(function(lg){   var objURL=function(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(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;   }   //只是設定this.params   objURL.prototype.remove=function(key){     this.params[key]=undefined;   }   //根據三部分組成操作後的url   objURL.prototype.url=function(){     var strurl=this.href;     var objps=[];//這裡用數組組織,再做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;   }   //得到參數值   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"));//取參數a的值,這裡得到1     myurl.set("a",23); //修改a的值為23     alert (myurl.url()); </script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.