IE下object元素遮挡div表单

Posted 凝荷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE下object元素遮挡div表单相关的知识,希望对你有一定的参考价值。

目前遇到这样的一个问题:

我用ActiveX插件做了一个C#的播放器,要将这个插件放到web浏览器中,然后可以通过前台页面来控制视频的播放,暂停还有回放,这个时候发现object的onclick事件无法相应,一搜索,确实是这样。那么怎么办呢?万能的搜索啊,终于有两种解决方案:

1,js监听ActiveX控件的行为。(按照网上给的,行不通,监听失败,原因是很多都是10年左右用vc++写的ocx插件的方法,现在行不通)

2,直接通过js控制。

很明显采用第2个方法,于是新的问题就出现了:

怎么调用?

于是有搜索,一种解决方案:div覆盖。

于是就出现了标题中的问题:IE下object元素遮挡div表单

解决方案为:用iframe:

原理:Iframe框架可以遮盖OBJECT、SELECT,DIV可以遮盖Iframe。因此,我们可以将Iframe放置在DIV层内,将Iframe大小宽度设置成与层一样放置在层之下,当层经过OBJECT、SELECT时,下方的框架将替层遮盖其不能遮盖的控件。
需要说明的是使用html标签属性设置显示层次,必须是z-Index而不是zIndex。zIndex是使用脚本动态修改属性使用。两者不通用。

原因:

大多表单控件或HTML控件是使用浏览器本身渲染绘制,因此层次可以由浏览器自身控制。而SELECT控件是Windows窗口控件,同样可见型ActiveX容器也是使用面向Windows技术开发。它们表现实质仍是相同,都是Windows窗口包含句柄。因此,浏览器不能对其调整层次,浏览器本身与他们都是平级的

最后解决方案:

技术分享
  <td class="videoBox">
                        <div class="videoDiv" style="background-color:#f00;"  onclick="clickme()">
                            <iframe  src="about:blank" frameBorder=0 marginHeight=0 marginWidth=0
                                    style="position:relative; visibility:inherit; top:0px;left:0px;height:100%;width:100%; z-Index:-1; filter=‘progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)‘;">
                            </iframe>
                        </div>
                        <object id="player00" name="player00" classid="clsid:0aafd513-e1ed-4ce9-8539-9434f9106030" selected="true" displaying="true" style="width: 100%;height: 590px;margin: auto" >
                        </object>
                    </td>
object覆盖div

对应的CSS

技术分享
        .videoBox{
            position:relative; /*给表格的td设置绝对定位属性*/
        }
        .videoDiv{
            width:100%;
            height:100%;
            position:absolute;
            left:5px;
            top:0;
            z-index:11;/*给覆盖在视频上面的div设置相对属性,其中z-index一定要比视频的z-index数值高*/
        }
        object{
            position:relative;
            left:0;
            top:0;
            z-index:10;
        }
对应的css

 

原文来自于

原文

以上是关于IE下object元素遮挡div表单的主要内容,如果未能解决你的问题,请参考以下文章

在IE浏览器下,PDF将弹出窗口遮挡了

jquery 判断获得元素的类型是为div还是其他

防止fixed元素遮挡其他元素的方法

弹出层或者下拉菜单被下面的 层遮挡住了解决办法

Selenium : 处理加载屏幕遮挡 web 元素。 (爪哇)

如何动态添加带有引导表单元素的 div?