两个纯静态页面html之间跳转通过js传值

发布于 2012-12-06  15.42k 次阅读


在静态html中如何通过jquery或跳转传值?

Situation 1:

通过jquery动态加载html传值

有人遇到,或没遇到过这种情况,我早上刚遇到,可以记下来,

Code Section:

$.get("xxx/xxx/alpha.html",{name:'test'},function....)

想要在alpha.html 静态页面中拿到name参数,很遗憾,我尝试过还是没有给出一个完美答案。

解决方法是用全局变量,在alpha.html写js获得。 窘 o(︶︿︶)o 唉

 

Situation 2:

静态页面(href="beta.html?name=test" || location="beta.html?name=test")跳转传值

Code Section:

evalhtmParam = 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;  
    }  
  }  
}();

 

在beta.html中写js,取值

<script>

var name = evalhtmParam.parm("name");  
alert(name)

 

这种方法在第一种情况下拿不到值。不知道为什么?