通过iframe调用页面时,希望透过iframe出现整屏的蒙层。同时iframe的高度不能过高以至于挡住原网站的内容
需求:我们需要在其他网站下加一个iframe,该iframe永远在可视区的底部。把我们的页面放进去,我们页面有些验证提示需要一个占满整个可视区的蒙层。
方案一:给iframe设置成高度100%,造成的结果是因为iframe层级较高,挡住了原网站的内容
方案二:控制iframe的高度,该方法需要在同域下,跨域会报错(本地调试也是不可以的需要开启服务),但好歹也算是满足了需求。
具体做法:
1.iframe通过fixed固定在底部,并给一个固定的class或者ID,方便查找
2.在iframe内的网页中通过$(window.parent.document).find("#frame")找到该frame
3.点击验证按钮弹出蒙层的同时改变iframe的高度,如下:
var $winHeight = $(window.parent).height();
$($(window.parent.document).find("#test")).css({'height':$winHeight});
注意:这里的window.parent是window,因为我们是需要占满可视区,所以获取的是window的高度,而不是document的高度,这个要区分清楚
4.记得蒙层关闭时,把高度设置回来
5.该方法顺带也解决了模拟的下拉的问题,因为iframe的高度的问题,用ul模拟的下拉会被挡住。顺势也被解决了,但是用源生的select则不会出现被挡住的状况。
浙公网安备 33010602011771号