JSバルクブラウザのパラメータを取得

このような以前に取得したブラウザパラメータ

function GetQueryString(name)
{
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if(r!=null)
        return  unescape(r[2]);
      return null;
}

// 调用方法
alert(GetQueryString("参数名1"));

この方法は、単一のパラメータを取得するために適しているが、複数のパラメータは、時になりますトラブルの多くは、ブラウザのパラメータが内部オブジェクトに配置されている方法はありませんか?だから私は、次のようにこのメソッドを書きました

function getParameters() {                    //获取地址栏参数不包括hash值
            var search = decodeURI(location.search);//防止中文乱码
            search = search.replace('?', '');
            var searray = search.split("&");
            var obj = {}
            searray.map(function (item) {
                var sarry = item.split('=');
                obj[sarry[0]] = sarry[1];
            })
            return obj;
}

var para=getParameters();

それは非常に簡単で、かつ非常に便利ではありません

まあ、単一の最初の時間を取得利点のすべてを取得する時に、利点を持っているので、それを統合することができますか?

さて、私は先に行って、修正

function getParameters(obj) {//获取地址栏参数不包括hash值
            var search = decodeURI(location.search).replace('?', '');//防止中文乱码
            if(typeof obj=="string"){
                var reg = new RegExp("(^|&)"+ obj +"=([^&]*)(&|$)");
                var r = window.location.search.substr(1).match(reg);
                if(r!=null)return  unescape(r[2]); return null;
            }else if(typeof obj=="undefined"){
                var searray = search.split("&");
                var obj = {}
                searray.map(function (item) {
                    var sarry = item.split('=');
                    obj[sarry[0]] = sarry[1];
                })
                return obj;
            }

}

// getParameters();
//  getParameters('tn');

あなたが再びのことを考えていない私が取得する必要はありません満足し、私はそれらのいくつかを行う取得したい、すべて取得する必要はありませんか?

どのように私はとてもあなたに会い作りについて。

だから、最終的なコードは、このようなになってきました

function getParameters(obj) {//获取地址栏参数不包括hash值
            var search = decodeURI(location.search).replace('?', '');//防止中文乱码
            if(typeof obj=="string"){
                var reg = new RegExp("(^|&)"+ obj +"=([^&]*)(&|$)");
                var r = window.location.search.substr(1).match(reg);
                if(r!=null)return  unescape(r[2]); return null;
            }else if(typeof obj=="undefined"){
                var searray = search.split("&");
                var obj = {}
                searray.map(function (item) {
                    var sarry = item.split('=');
                    obj[sarry[0]] = sarry[1];
                })
                return obj;
            }else if(obj.constructor ==Array){
                var searray = search.split("&");
                var fromarray = {}
                searray.map(function (item) {                 
                    var sarry = item.split('=');
                     if(obj.indexOf(sarry[0])>-1){
                          fromarray[sarry[0]] = sarry[1];   
                     }

                })
                return fromarray;
            }

}

// getParameters();
//  getParameters('tn');
 //getParameters(['tn','wd']);

モディモディの騒々し。

おすすめ

転載: blog.51cto.com/13496570/2416775