首页 > 代码库 > IE下object元素遮挡div表单
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>
对应的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; }
原文来自于
原文
IE下object元素遮挡div表单
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。