JS操作URL

6975 ワード

コードは簡単で、主な考え方はurlパラメータをjsの対象として解析し、追加、削除、変更、検索操作をすると便利です.ここでメモします.
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||{}));
LGは私個人の共同JSの名前空間だけで、彼がいません.呼び出し:
    var myurl=new LG.URL("http://www.baidu.com?a=1");

    

    myurl.set("b","hello"); //   b=hello

    alert (myurl.url());

    

    myurl.remove("b"); //   b

    

    alert(myurl.get ("a"));//   a  ,    1

    

    myurl.set("a",23); //  a   23

    

    alert (myurl.url());