首页 新闻 搜索 专区 学院

iframe 中的元素被遮挡问题

0
悬赏园豆:30 [已解决问题] 解决于 2014-06-25 13:59

我用Iframe嵌套了一个页面,页面中包含一个combo。单独运行combo 页面显示正常,但是嵌入到iframe中,如果Iframe的高度的低于combo的下拉框的高度,那么显示有一部分被遮 挡。看了一下easyui源码,发现combo的combo-panel设置了z-index=10,于是我把Iframe的zindex设置成-1,position:abosutle 但 是效果还是不对 求大家帮忙看看。而在iframe中的select元素不会被遮挡,这是为什么呢。我发现在iframe中Panel 也存在这个问题。求高手解决

uuliver的主页 uuliver | 初学一级 | 园豆:71
提问于:2014-06-24 17:09
< >
分享
最佳答案
1

本以为这个http://blog.csdn.net/huangxw000/article/details/7259934可以帮到你,我自己试了一下,发现行不通,也就是我也不知道有什么方法可以让一个DIV显示在iframe外面。目前也就是select可以显示在iframe外面。

不过。。。你把combo放在一个iframe中,然后又在页面中引用这个iframe,那为什么不直接引用combo呢?我估计你就算换成easyui的combo,也不能改变现在的情况。

还有一种不好的方法:直接固定iframe的高度,让它可以显示整个combo;再或者,利用js动态改变iframe的高度,当展开combo的时候,增大iframe的高度,反之减小高度

收获园豆:30
ThreeTree | 小虾三级 |园豆:1490 | 2014-06-24 22:04

因为IFRAME中是公共使用的,通过配置生成的页面,业务根据自己的需求在公共的页面上进行二次开发,所以最好不要通过高度来修改遮盖问题,因为被嵌入的IFRAME可能会高度很小,也可能会高度比较大。

uuliver | 园豆:71 (初学一级) | 2014-06-25 09:04

@uuliver: 目前来看,css似乎不能做到这一点:让DIV显示在iframe外面。

可以考虑两种变通方法:

(1)利用AJAX直接请求公共页面,这样你可以得到html字符串,然后生成相应的节点。

(2)还是利用iframe来请求公共页面,不过需要隐藏这个iframe,然后在iframe中实现onload事件,将公共页面中的内容复制到父页面中的相应DIV中

ThreeTree | 园豆:1490 (小虾三级) | 2014-06-25 12:10

@ThreeTree: 恩 感谢高手给的意见,第一种方式 应该就是用Panel去引用那个页面,不用Iframe

第二种方式我去试试。十分感谢:-)

uuliver | 园豆:71 (初学一级) | 2014-06-25 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册