iframe中的模态框遮罩如何盖住父级?

发布于 2022-09-04 15:08:40 字数 1259 浏览 9 评论 0

1.后台系统中用了iframe来布局,iframe中的页面使用了模态框,但是遮罩只能盖住iframe本身,并不能覆盖父级页面,如下图:
图片描述

2.百度一下,说可以在父级页面做遮罩层,然后在iframe页面里调用,结果父级页面的遮罩挡住了iframe页面中的模态框,如下图:
图片描述

3.父级遮罩代码如下:

<!--HTML代码 遮罩层 -->
<div id="mask"></div>
/*CSS代码 遮罩层*/
#mask {width:100%;height:100%;background-color:#000;position:absolute;top:0;left:0;z-index:1;opacity:0.3;
    /*兼容IE8及以下版本浏览器*/
    filter: alpha(opacity=30);display:none;}
/*JS代码 遮罩层*/
function showmask(){
    var s = document.getElementById("mask");
    s.style.display = "block";
}

function closemask(){
    var s = document.getElementById("mask");
    s.style.display = "none";
}

4.我还试过一种方法,就是将模态框直接写在父级页面里,然后iframe子页面中调用父级方法,这个方法的确是可以解决盖住父级页面的问题,但是,我在模态框中要输入表单到后台php页面更新数据库,成功后刷新页面,一旦刷新页面,iframe中的页面就会占据整个页面成为父级,如下图:
图片描述

5.本人是初学者,望各位大神提供下思路,被这个问题苦恼了好几天了。。。万分感谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冬天旳寂寞 2022-09-11 15:08:40

第4的方法是正解,唯一要解决你的问题。

如果说你的表单提交是AJAX的话,这个问题好解决,只需要在 success 的时候手动再去刷新相应 iframe 就行了。

日暮斜阳 2022-09-11 15:08:40

同为菜鸟遇到过类似问题,我的做法是中间弹窗和遮罩,然后通过frame的层级关系找到头部和左边栏加上遮罩,不知道是否还有更好方法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文