layui-弹出层中如何关闭窗口

    var index = parent.layer.getFrameIndex(window.name);  
    parent.layer.close(index);//关闭当前页  
    // window.parent.location.replace(location.href)//刷新父级页面  

window.parent.location.reload();

type - 基本层类型

类型:Number,默认:0
layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)

  1. //当你想关闭当前页的某个层时
  2. var index = layer.open();
  3. var index = layer.alert();
  4. var index = layer.load();
  5. var index = layer.tips();
  6. //正如你看到的,每一种弹层调用方式,都会返回一个index
  7. layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可
  8. //如果你想关闭最新弹出的层,直接获取layer.index即可
  9. layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
  10. //当你在iframe页面关闭自身时
  11. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  12. parent.layer.close(index); //再执行关闭
总结:

这种打开的页面的好处是:直接关闭当前弹出层,不用刷新整个页面,不用加载数据,性能高,节约时间,缺点是查询参数的传输不方便。

补充:

这种写法产地参数十分的不方便,试过array方式传参解读过去的都是object根本不是想要的数据,而json格式数据因为里面带有引号只会传递部分数据,我在这里总结了一个方法,从几种方法里面选的一个相对较好的传参方式:

  1. [{"name":"periodstart","value":"2014-01"},{"name":"periodend","value":"2014-12"},{"name":"fkcategory","value":""},{"name":"fkCategoryName","value":""},{"name":"fkmandept","value":""},{"name":"fkMandeptName","value":""},{"name":"fkusedept","value":""},{"name":"fkUsedeptName","value":""},{"name":"pkcurrtype","value":""},{"name":"total","value":""}] 
  1. JSON.stringify($('#searchForm').serializeArray()).replace(/"+/g,'').replace(/name:/g,'').replace(/,value:/g,'=').replace(/},{/g,',');  

这是先将一个form表单里面的数据序列化出来,然后转为json格式,然后将json格式的数据转为map避免json数据里面引号对数据的传递影响,然后在后台直接在后台强转为map格式的数据,非常方便。

  1. Map<String, String> map = new HashMap<String, String>();  
  2. String data = "{periodstart=2014-01,periodend=2014-12,fkcategory=,"  
  3.     + "fkCategoryName=,fkmandept=,fkMandeptName=,fkusedept=,fkUsedeptName=,pkcurrtype=,total=}";;  
  4. data = data.substring(1, data.length()-1);//去掉前后括号  
  5. String[] arraydata = data.split(",");//按“,”将其分为字符数组  
  6. for (int i = 0; i < arraydata.length; i++) {  
  7.     int j = arraydata[i].indexOf("=");  
  8.     map.put(arraydata[i].substring(0, j-1), arraydata[i].substring(j+1, arraydata[i].length()));  
  9. }  
  10. Object o = map.get("perioden");  
  11. System.out.println(o.toString());  
[javascript] view plain copy
  1. {periodstart=2014-01,periodend=2014-12,fkcategory=,fkCategoryName=,fkmandept=,fkMandeptName=,fkusedept=,fkUsedeptName=,pkcurrtype=,total=} 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页