1. 程式人生 > >對原生html之間get傳遞引數 和獲取引數的封裝

對原生html之間get傳遞引數 和獲取引數的封裝

UrlParam .param(‘引數’) 如果頁面間傳遞的key無重複 獲取單個值
UrlParam .paramValues(‘引數’)如果頁面間傳遞的key有重複 得到一個數組
UrlParam .hasParam(‘引數’)判斷引數是否存在
UrlParam .paramMap()得到所有引數的物件

封裝好的程式碼

UrlParam = function() { // url引數 
  var data, index; 
  (function init() { 
    data = []; //值,如[["1","2"],["zhangsan"],["lisi"]] 
    index = {}; //鍵:索引,如{a:0,b:1,c:2} 
    var u = window.location.search.substr(1);     if (u != '') {       var params = decodeURIComponent(u).split('&');       for (var i = 0, len = params.length; i < len; i++) {         if (params[i] != '') {           var p = params[i].split("=");           if (p.length == 1 || (p.length == 2
&& p[1] == '')) {// p | p= | =             data.push(['']);             index[p[0]] = data.length - 1;           } else if (typeof(p[0]) == 'undefined' || p[0] == '') { // =c 捨棄             continue;           } else if (typeof(index[p[0]]) == 'undefined') { // c=aaa             data.push([p[1]]);             index[p[0
]] = data.length - 1;           } else {// c=aaa             data[index[p[0]]].push(p[1]);           }         }       }     }   })();   return {     // 獲得引數,類似request.getParameter()     param : function(o) { // o: 引數名或者引數次序       try {         return (typeof(o) == 'number' ? data[o][0] : data[index[o]][0]);       } catch (e) {       }     },     //獲得引數組, 類似request.getParameterValues()     paramValues : function(o) { // o: 引數名或者引數次序       try {         return (typeof(o) == 'number' ? data[o] : data[index[o]]);       } catch (e) {}     },     //是否含有paramName引數     hasParam : function(paramName) {       return typeof(paramName) == 'string' ? typeof(index[paramName]) != 'undefined' : false;     },     // 獲得引數Map ,類似request.getParameterMap()     paramMap : function() {       var map = {};       try {         for (var p in index) { map[p] = data[index[p]]; }       } catch (e) {}       return map;     }   } }();