`
hackbomb
  • 浏览: 218498 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用js从url中提取request参数

阅读更多

UrlParm =  function () {  // url参数   
   var  data, index;   
  ( function  init() {   
    data = [];   
    index = {};   
     var  u = window.location.search.substr(1);   
     if  (u !=  '' ) {   
       var  parms = decodeURIComponent(u).split( '&' );   
       for  ( var  i = 0, len = parms.length; i < len; i++) {   
         if  (parms[i] !=  '' ) {   
           var  p = parms[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 | =   
            data[0] = [p[1]];   
          }  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()   
    parm :  function (o) {  // o: 参数名或者参数次序   
       try  {   
         return  ( typeof (o) ==  'number'  ? data[o][0] : data[index[o]][0]);   
      }  catch  (e) {   
      }   
    },   
     //获得参数组, 类似request.getParameterValues()   
    parmValues :  function (o) {  //  o: 参数名或者参数次序   
       try  {   
         return  ( typeof (o) ==  'number'  ? data[o] : data[index[o]]);   
      }  catch  (e) {}   
    },   
     //是否含有parmName参数   
    hasParm :  function (parmName) {   
       return   typeof (parmName) ==  'string'  ?  typeof (index[parmName]) !=  'undefined'  :  false ;   
    },   
     // 获得参数Map ,类似request.getParameterMap()   
    parmMap :  function () {   
       var  map = {};   
       try  {   
         for  ( var  p  in  index) {  map[p] = data[index[p]];  }   
      }  catch  (e) {}   
       return  map;   
    }   
  }   
}();   
  
//例如   
// URL是 http://127.0.0.1/demo.jsp?a&page=2&b=dd&c=123&b=dd2   
UrlParm.parm(0)          // 结果:  "";   
UrlParm.parm( 'a' )        // 结果:  "";   
UrlParm.parm( 'page' )     // 结果:  "2";   
UrlParm.parm(1)          // 结果:  "2";   
UrlParm.parm( "b" )        // 结果:  "dd";   
UrlParm.parmValues( "b" // 结果:  ["dd","dd2"];   
UrlParm.hasParm( "b" )     // 结果:  true;   
UrlParm.hasParm( "x" )     // 结果:  false;   
UrlParm.parmMap()        // 结果:  {a:[""],page:[2],b:["dd","dd2"],c:["123"]};  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics