思路:
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参数的案例,但是是直接封装成了方法的。相当于每次获取参数时都需要进行一次正则解析,感觉比较影响效率;
所以以后编写这些工具方法,也尽量封装成对象方法,以减少重复计算的性能消耗。