layer的iframe层模式怎么实现子父通讯
2个回答
展开全部
一:index.html中iframe引入son.html ,
<!-- 右侧iframe开始 -->
<div id="resDiv" class="resDiv">
<iframe name="res" class="iframestyle" allowtransparency="true" src="son.html" frameborder="0" scrolling="no"></iframe>
</div>
<!-- 右侧iframe结束 -->
二: index.html的body部分中添加屏蔽层和内容展示层
<!--弹出的登录页面层-->
<div id="mapLayer" style="display: none; " >
<input type="button" value="关闭" onclick="closeMap()" />
</div>
<!--屏蔽层,用来透明的屏蔽整个页面-->
<div id="mapBgLayer" style="position:absolute; display: none;"></div>
三:index.html 中设置div的样式和实现打开关闭层
<style type="text/css">
#BgLayer {
background: #939393 none repeat scroll 0 0;
height:100%;
width:100%;
left:0;
top:0;
filter: alpha(opacity=80); /* IE */
-moz-opacity: 0.8; /* Moz + FF */
z-index: 10000;
}
#Layer {
width: 400px;
height: 400px;
margin: -180px 0 0 -170px;
left: 50%;
top: 50%;
position: absolute;
background: #FFF;
z-index: 10001;
border: 1px solid #1B5BAC;
}
</style>
<script type="text/javascript">
/*显示页面*/
function showDiv) {
var bg = document.getElementById("BgLayer");
var con = document.getElementById("Layer");
//var w = document.documentElement.clientWidth; //网页可见区域宽
//var h = document.documentElement.clientHeight;//网页可见区域高
var w = document.body.scrollWidth; //网页正文全文宽
var h = document.body.scrollHeight; //网页正文全文高
// alert(w+"-"+h);
bg.style.display = "";
bg.style.width = w + "px";
bg.style.height = h + "px";
con.style.display = "";
}
/*关闭*/
function closeDiv() {
var bg = document.getElementById("BgLayer");
var con = document.getElementById("Layer");
bg.style.display = "none";
con.style.display = "none";
}
</script>
四:son.html 中某个操作调用父页面
<a href="javascript:void(0)" onclick="parent.window.showDiv()">查看</a>
<!-- 右侧iframe开始 -->
<div id="resDiv" class="resDiv">
<iframe name="res" class="iframestyle" allowtransparency="true" src="son.html" frameborder="0" scrolling="no"></iframe>
</div>
<!-- 右侧iframe结束 -->
二: index.html的body部分中添加屏蔽层和内容展示层
<!--弹出的登录页面层-->
<div id="mapLayer" style="display: none; " >
<input type="button" value="关闭" onclick="closeMap()" />
</div>
<!--屏蔽层,用来透明的屏蔽整个页面-->
<div id="mapBgLayer" style="position:absolute; display: none;"></div>
三:index.html 中设置div的样式和实现打开关闭层
<style type="text/css">
#BgLayer {
background: #939393 none repeat scroll 0 0;
height:100%;
width:100%;
left:0;
top:0;
filter: alpha(opacity=80); /* IE */
-moz-opacity: 0.8; /* Moz + FF */
z-index: 10000;
}
#Layer {
width: 400px;
height: 400px;
margin: -180px 0 0 -170px;
left: 50%;
top: 50%;
position: absolute;
background: #FFF;
z-index: 10001;
border: 1px solid #1B5BAC;
}
</style>
<script type="text/javascript">
/*显示页面*/
function showDiv) {
var bg = document.getElementById("BgLayer");
var con = document.getElementById("Layer");
//var w = document.documentElement.clientWidth; //网页可见区域宽
//var h = document.documentElement.clientHeight;//网页可见区域高
var w = document.body.scrollWidth; //网页正文全文宽
var h = document.body.scrollHeight; //网页正文全文高
// alert(w+"-"+h);
bg.style.display = "";
bg.style.width = w + "px";
bg.style.height = h + "px";
con.style.display = "";
}
/*关闭*/
function closeDiv() {
var bg = document.getElementById("BgLayer");
var con = document.getElementById("Layer");
bg.style.display = "none";
con.style.display = "none";
}
</script>
四:son.html 中某个操作调用父页面
<a href="javascript:void(0)" onclick="parent.window.showDiv()">查看</a>
展开全部
你看一下layer的官方演示里边就有在iframe中关闭自身的例子
在你上面的“页面”中,在你提交表单后执行
1
2
3
4
var index = parent.layer.getFrameIndex(window.name); //获取当前窗体索引
$('#提交的元素').on('click', function(){
parent.layer.close(index); //执行关闭
});
你可能需要修改上面的"submit"提交为button提交
在你上面的“页面”中,在你提交表单后执行
1
2
3
4
var index = parent.layer.getFrameIndex(window.name); //获取当前窗体索引
$('#提交的元素').on('click', function(){
parent.layer.close(index); //执行关闭
});
你可能需要修改上面的"submit"提交为button提交
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询