靜態頁面html中跳轉傳值的JS處理技巧

在html中通過"?"傳值:

<a href="index2.html?name=caoy">靜態傳值</a>

在跳轉到的頁面index2.html中接收:

var name=UrlParm.parm("name");

代碼如下:

index.html:

<script type="text/javascript" src="getUrlParam.js"></script>

<a href="index2.html?name=caoy">靜態傳值</a>

index2.html:

<script type="text/javascript">

  var name=UrlParm.parm("name");

  alert(name);

</script>

getUrlParam.js:

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;

  }

 }

}();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章