使用layer.open时content属性传值记录

  最近在做一个后台项目,正好碰上了要使用layer.open,就顺手记录一下,方便以后遇到了有个参考 - 2016/11/7


 

  layer 这个是一个web弹层组件,挺好用的...然后项目框架是SSM...


 

  layer.open主要是用来弹出来一个iframe弹窗,然后用来展示数据也行,用来修改也行,这次记录的主要是展示,展示我想要展示的数据,我需要的页面...

layer.open({
     type: 1,
     title: '账户信息详情',
     shadeClose: true,
     shade: false,
     maxmin: true, //开启最大化最小化按钮
     area: ['893px', '600px'],
     content: xxxxxxxxx
});

 

其他的不看,单看content,因为content的内容就是需要展示的内容

第一种方法,很简单,我想要看一个已经存在的页面,比如说百度,或者项目中某个页面 直接写地址

layer.open({
      type: 2,
      title: '很多时候,我们想最大化看,比如像这个页面。',
      shadeClose: true,
      shade: false,
      maxmin: true, //开启最大化最小化按钮
      area: ['893px', '600px'],
      content: 'http://fly.layui.com/'
    });

-----------------------------------------------------------------------

layer.open({
      type: 2,
      title: '用户信息。',
      shadeClose: true,
      shade: false,
      maxmin: true, //开启最大化最小化按钮
      area: ['893px', '600px'],
      content: '/test/user/info' + uid
    });

 后面的uid可能是你需要传递的某些参数之类的...具体的根据你controller来定

 

第二种方法,将需要的内容写到页面上,然后在使用的时候调用

jsp页面:

<div id='info' style = "display : none">
        我是内容
</div>

 

然后在js里面调用

layer.open({
           type: 1,
           title: '账户信息详情',
           shadeClose: true,
           shade: false,
           maxmin: true, //开启最大化最小化按钮
           area: ['893px', '600px'],
           content: $("#info").html()
});

 

第三种方法,直接在js里面拼接...好凶残...

var html = "<div class='wrapper' id='detailsinfo'>" +
           "<div class='detailsdiv'>" +
           "<p><label>帐号:</label>" + '测试帐号' +"</p>" +
           "</div></div>"
                            
layer.open({
    type: 1,
    title: '账户信息详情',
    shadeClose: true,
    shade: false,
    maxmin: true, //开启最大化最小化按钮
    area: ['893px', '600px'],
    content: html
});

 

 

我现在使用的就是这三种方法,也许还有更好的方法,以后发现了再记录

对于方法一:因为是使用已经存在的controller和页面,所以传值什么都比较方便,需要什么值就获取什么值传递什么值...但是有些页面可能我不想让别人通过url直接就访问到...那就可以用第二种和第三种...所需的数据直接通过ajax从后台获取到,然后再放到具体的位置,然后再展示~~

 

posted @ 2016-11-07 14:44  郑小辉  阅读(105138)  评论(1编辑  收藏  举报