使用js从URL中获取参数的方法

思路:

  1、通过window.location.search获取到URL中的参数串

  2、再根据?、&等字符,解析参数串到json对象中

  3、提供getParam方法根据key值获取对应的value

源码如下:

 
$(function(){
/* 创建tool工具对象,并初始化 */
    var oHttpLocalTool = HttpLocalToolInit();
    oHttpLocalTool.init();

    $('#inputPhoneNo').val(oHttpLocalTool.getURLParam("phoneNo"));
});

var HttpLocalToolInit = function(){
/* tool对象初始化时,解析URL参数串到 oHttpLocalToolobj.urlElments json对象中保存 */
    var oHttpLocalToolobj = new Object();

    oHttpLocalToolobj.init = function(){
        oHttpLocalToolobj.searchString = window.location.search;
        oHttpLocalToolobj.searchString = oHttpLocalToolobj.searchString.replace("?","");
        oHttpLocalToolobj.urlElments = {};   /* 创建JSON对象 */

        var tmpArray = oHttpLocalToolobj.searchString.split("&");  /* 使用split 拆分string到 数组中 */
        for(var i in tmpArray){
            var result = tmpArray[i].split("=");  /* 使用 = 作为分隔符再次拆分  */
            oHttpLocalToolobj.urlElments[result[0]] = result[1];  /* 拆分的结果装载到JSON对象中  */
        }
    };

    oHttpLocalToolobj.getURLParam = function(key){
        return oHttpLocalToolobj.urlElments[key];    /* getURLParam方法直接返回key对应的value值 */
    }

    return oHttpLocalToolobj;
};
 
网上有通过正则的方式获取URL参数的案例,但是是直接封装成了方法的。相当于每次获取参数时都需要进行一次正则解析,感觉比较影响效率

所以以后编写这些工具方法,也尽量封装成对象方法,以减少重复计算的性能消耗。

猜你喜欢

转载自www.cnblogs.com/villWang/p/11314835.html
今日推荐