1. a.js页面
1 //Js获取Url参数 2 function request(paras) { 3 var url = location.href; 4 var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&"); 5 var paraObj = {}; 6 for (i = 0; j = paraString[i]; i++) { 7 paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length); 8 } 9 var returnValue = paraObj[paras.toLowerCase()]; 10 if (typeof (returnValue) == "undefined") { 11 return ""; 12 } else { 13 return returnValue; 14 } 15 }
2. b.js页面
1 //获取url中的参数 2 var request = 3 { 4 QueryString: function (val) { 5 var uri = window.location.search; 6 var re = new RegExp("" + val + "=([^&?]*)", "ig"); 7 return ((uri.match(re)) ? (uri.match(re)[0].substr(val.length + 1)) : null); 8 } 9 };
C页面同时引用a.js和b.js,a.js在前,b.js在后。因为a.js页面和b.js页面都有request对象,导致a.js里的request(paras)方法无效。
访问地址:http://localhost:36164/Default.aspx?11=12
1 <script src="a.js"></script> 2 <script src="b.js"></script> 3 <script > 4 5 var o = request("11"); 6 alert(o); 7 o = request.QueryString("11"); 8 alert(o); 9 </script>
解决方法:
调用b.js的request方法
1 if (typeof (request) == "undefined") { 2 request = function () { }; 3 } 4 request.QueryString = function (val) { 5 var uri = window.location.search; 6 var re = new RegExp("" + val + "=([^&?]*)", "ig"); 7 return ((uri.match(re)) ? (uri.match(re)[0].substr(val.length + 1)) : null); 8 }
结果: