首页 > 代码库 > 两个页面相同js方法兼容
两个页面相同js方法兼容
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 =http://www.mamicode.com/ 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="http://www.mamicode.com/a.js"></script>2 <script src="http://www.mamicode.com/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 }
结果:
两个页面相同js方法兼容
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。