easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.confirm

时间:2023-06-29 13:17:50

项目中用到easyui 布局,用到north,west,center三个区域,且在center中间区域嵌入iframe标签。在主内容区做一些小提示弹窗(例如删除前的弹窗提示确认)时,会遇到遮罩问题,由于center区域是iframe嵌套的,所以里面的小弹窗无法覆盖页面的头部和左边目录栏。

easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.confirm

情形一、点击提示弹窗里的确认后,提示弹窗消失:

//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确认弹窗,改如何处理遮罩问题?

例如删除前提示确认,点击确认后,内容被删除,再弹出删除成功提示框:

easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.confirm

easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.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。