获取URL参数的一个封装方法

url格式:”https://mp.csdn.net/mdeditor?a=1&b=2&c=3“;

封装方法1:

var getUrlParameter = function(){
    //  获取url参数
    function getQueryString() {
        var parameter = location.search.substr(1); // 获取url中"?"符后的字串  
        var parameterJson = {}; // 保存参数数据的对象
        var parameterArr = parameter.length ? parameter.split("&") : []; // 取得每一个参数项,
        var item = null;
        var len =parameterArr.length;

        for (var i = 0; i < len; i++) {//这里写代码片
            item =parameterArr[i].split("=");
            var name = decodeURIComponent(item[0]);// URI 进行解码。
            var value = decodeURIComponent(item[1]);// URI 进行解码。
            if (name) {
                parameterJson[name] = value;
            }
        }
        return parameterJson;
    }
    return {
        getQueryString:getQueryString
    }
}();

调用方法:

var urlString = getUrlParameter.getQueryString();
console.log(urlString["a"]) // -->输出为 1

封装方法2(面向对象):

function getUrlParam() {
    this.parameter = location.search.substr(1); // 获取url中"?"符后的字串  
    this.parameterJson = {}; // 保存参数数据的对象
    this.parameterArr = this.parameter.length ? this.parameter.split("&") : []; // 取得每一个参数项,
    this.item = null;
    this.len =this.parameterArr.length;
    var _this=this;
    for (var i = 0; i < this.len; i++) {//这里写代码片
        _this.item =_this.parameterArr[i].split("=");
        _this.name = decodeURIComponent(_this.item[0]);// URI 进行解码。
        _this.value = decodeURIComponent(_this.item[1]);// URI 进行解码。
        if (_this.name) {
            _this.parameterJson[_this.name] = _this.value;
        }
    }
    return this.parameterJson;
}

调用方法:

var getUrlParam=new getUrlParam();//使用:用类去创建实例
var a=getUrlParam["a"];
console.log(a) // -->输出为 1;

猜你喜欢

转载自blog.csdn.net/stone10086/article/details/80305777
今日推荐