两个页面相同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 = 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 }

 

结果:

 

转载于:https://www.cnblogs.com/059212315/p/6841388.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值