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

    结果:

  • 相关阅读:
    Noe4j启动警告
    SpringBoot
    MySQL数据库 java SQL语句区分大小写分析
    day24 模块的语法
    day23 re模块
    day22 常用模块02 序列化
    day21 常用模块01
    day20 面向对象06 MRO和C3算法
    day19 面向对象05 约束
    day18 面向对象04 反射
  • 原文地址:https://www.cnblogs.com/059212315/p/6841388.html
Copyright © 2020-2023  润新知