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 };
一个页面同时引用a.js和b.js,a.js在前,b.js在后。因为a.js页面和b.js页面都有request对象,导致a.js里的request(paras)方法无效。
解决方法:
调用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 }