Javascript操作URL 函數(新增,修改,刪除 URL參數)

來源:互聯網
上載者:User

這兩天遇到JS對URL的操作,網上查了很多方法,都是直接操作,使用起來很不方便,還有出現很多重複的代碼。

於是集百家之嚴,總結了各個方法,把它壓縮成了一個函數對象,只有幾十行代碼,使用方法簡單明了

ojbUrl.js

 代碼如下 複製代碼


/*
說明:本代碼可自由複製修改並且使用,但請保留作者資訊!
Author: Kevin  WebSite: http://iulog.com/  QQ:251378427

JS 操作 URL 函數使用說明:
初始化 var myurl=new objURL(); //也可以自訂URL: var myurl=new objURL('http://www.111cn.net');
讀取url參數值 var val=myurl.get('abc'); // 讀取參數abc的值
設定url參數 myurl.set("arg",data); // 新增/修改 一個arg參數的值為data
移除url參數 myurl.remove("arg"); //移除arg參數
擷取處理後的URL myurl.url();//一般就直接執行轉跳 location.href=myurl.url();
調試介面:myurl.debug(); //修改該函數進行調試
 */
function objURL(url){
 var ourl=url||window.location.href;
 var href="";//?前面部分
 var params={};//url參數對象
 var jing="";//#及後面部分
 var init=function(){
  var str=ourl;
  var index=str.indexOf("#");
  if(index>0){
   jing=str.substr(index);
   str=str.substring(0,index);
  }
  index=str.indexOf("?");
  if(index>0){
   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("=");
    params[kv[0]]=kv[1];
   }
  }else{
   href=ourl;
   params={};
  }
 };
 this.set=function(key,val){
  params[key]=encodeURIComponent(val);
 };
 this.remove=function(key){
  if(key in params) params[key]=undefined;
 };
 this.get=function(key){
  return params[key];
 };
 this.url=function(key){
  var strurl=href;
        var objps=[];
        for(var k in params){
            if(params[k]){
                objps.push(k+"="+params[k]);
            }
        }
        if(objps.length>0){
            strurl+="?"+objps.join("&");
        }
        if(jing.length>0){
            strurl+=jing;
        }
        return strurl;
 };
 this.debug=function(){
  // 以下調試代碼自由設定
  var objps=[];
  for(var k in params){
   objps.push(k+"="+params[k]);
  }
  alert(objps);//輸出params的所有值
 };
 init();
}

調用方法

JS 操作 URL 函數使用說明:

 代碼如下 複製代碼

var myurl=new objURL(); //初始化。也可以自訂URL: var myurl=new objURL('http://www.111cn.net');
var val=myurl.get('abc'); // 讀取參數abc的值
myurl.set("arg",data); // 新增/修改 一個arg參數的值為data
myurl.remove("arg"); //移除arg參數
myurl.url();//擷取處理後的URL , 一般就直接執行轉跳: location.href=myurl.url();
myurl.debug(); //這是調試介面。修改該函數方法進行調試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.