思路:
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參數的案例,但是是直接封裝成了方法的。相當於每次獲取參數時都需要進行一次正則解析,感覺比較影響效率;
所以以后編寫這些工具方法,也盡量封裝成對象方法,以減少重復計算的性能消耗。