项目中用到easyui 布局,用到north,west,center三个区域,且在center中间区域嵌入iframe标签。在主内容区做一些小提示弹窗(例如删除前的弹窗提示确认)时,会遇到遮罩问题,由于center区域是iframe嵌套的,所以里面的小弹窗无法覆盖页面的头部和左边目录栏。
情形一、点击提示弹窗里的确认后,提示弹窗消失:
//warnTips为传入的值,例如successMask(“确定要删除选中的数据吗?”)
function successMask(warnTips){
parent.$.messager.alert({
title:'',
msg:warnTips,
draggable:false,
fn:function(){
}
}); }
情形二、点击提示弹窗里的确认后,提示弹窗消失,并且页面跳转:
//使用方法,successMask('删除成功!','system/js/rolepermissions.jsp')
function successMask(warnTips,url){
parent.$.messager.alert({
title:'',
msg:warnTips,
draggable:false,
fn:function(){
//点击确认后,页面跳转
window.location.href = url;
}
}); }
使用以上代码可以完美解决easyUI center区域iframe里的alert提示弹窗、confirm弹窗的遮罩问题。
这里再做一个拓展,如果是confirm确认弹窗,改如何处理遮罩问题?
例如删除前提示确认,点击确认后,内容被删除,再弹出删除成功提示框:
用如下代码,就可以解决问题
parent.$.messager.confirm({
title:'',
msg:'确定要删除选中的数据吗?',
draggable:false,
fn:function(boolean){
if(boolean){//确定删除操作
var id = $(obj).attr ("id");
$.ajaxSettings.async = false;
$.get("roleAction!deleteRole.html",{q:new Date().getTime(),id:id},function(data){
if(data=='success'){
successMask('删除成功!','system/js/rolepermissions.jsp')
}else{
infoMask(data);
}
}
}
}
到这里,就解决了easyui 中iframe嵌套页面,提示弹窗遮罩显示的问题。parent.$.messager.alert和parent.$.messager.confirm。