在之前使用layui iframe弹窗时,之前最常使用的就是混合开发的方式,后台工程师会直接将url内带上参数然后打开页面。然后在去获取参数;那么如果前后端分离或者不使用url如何传递参数呢?
1.封装打开弹窗方法
//参数可以自己定义,但是url是必须要的!!
function admin_show(title,url,ids,w,h){
if (title == null || title == '') {
title=false;
};
if (url == null || url == '') {
return false
};
if (w == null || w == '') {
w=($(window).width()*0.8);//宽度
};
if (h == null || h == '') {
h=($(window).height() - 200);//高度
};
layer.open({
type: 2,
area: [w+'px', h +'px'],
fix: false,
maxmin: true,
shadeClose: true,
shade:0.4,
title: title,
content: url,
//重点:向子页面传递参数方法,
success:function(layero,index){
var body = layer.getChildFrame('body', index);
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
body.find('#default_option').val(ids);//#default_option是我在子页面的一个input框专门用来接收传递过去的参数;
}
});
}
2.页面中调用
<li onclick="admin_show('预警信息','warning.html','视频')"></li>
//三个参数分别对应title url ids
3.子页面(弹出层)接收参数
var ids = $("#default_option").val();
console.log(ids)//这里就可以输出参数,使用参数;
这就是父页面传递参数到子页面的方法,通过子页面传递给父页面参数的方法可以看之前发表的一篇文章:https://blog.csdn.net/qq_36229632/article/details/89319479