layui|layui 如何在页面型弹窗内控制外层关闭并刷新列表
在使用layui弹窗类型是页面弹窗时,在弹窗内部想调用外部的方法进行关闭本身比较麻烦(因为使用了iframe不在一个window中)。我们可以把关闭弹窗的操作传递到弹窗内。
建立一个弹窗dialog,弹窗内容是另一个add页面:
var dialog = layer.open({
type: 2,
title: "添加",
closeBtn: 1,
id: "detail",
area: ["100%", "100%"],
content: "add.html?id=" + data.id,
zIndex: layer.zIndex,
success: function (layero, index) {window[layero.find("iframe")[0]["name"]].back = function (cb) {
cb && cb();
initTable();
layui.close()
};
},
});
【layui|layui 如何在页面型弹窗内控制外层关闭并刷新列表】弹窗创建完成之后找到对应的iframe name然后取到对应的window
在弹窗内部iframe的window中的作用域里添加关闭弹窗的函数(在获取到的window可以添加任何东西,相当于与父window建立了通信):
window[layero.find("iframe")[0]["name"]].back = function (cb) {
cb && cb();
//回调
initTable();
//是一个刷新列表的函数
layui.close()
};
然后在弹窗里提交请求完成后就可以执行当前window的back方法返回列表页面了:
function submitAdd(status) {
request({
url:"/add",
isJson: true,
data: JSON.stringify({
id: 1,
status: 2,
desc: 3,
}),
method: "post",
success: function (res) {
if (res.code == 0) {
layer.msg(res.description);
setTimeout(function () {
window.back();
}, 1000);
// 返回列表页
}
},
error: function (msg) {layer.msg("后台错误");
},
});
}
推荐阅读
- 任时光绽放成六月繁花
- 我从来不做坏事
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 樱花雨
- 如何寻找情感问答App的分析切入点
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 人如果没梦想,和咸鱼有什么区别(自媒体时代把握住就能咸鱼翻身)
- 如何在Mac中的文件选择框中打开系统隐藏文件夹