关于WEB开发下面DIV层被OCX控件拦住问题
MxDraw网页开发|冯美娟|2018-07-26 17:20
-
回答:
控件分为有窗口控件与无窗口控件,无窗口控件很好办,如flash控件,可以通过添加wmode属性来解决挡住DIV层这个问题,添加的代码如下:
解决无窗口控件挡住DIV:
<param name="wmode" value="opaque">
这种情况在使用DIV的网页里的测试如下:
测试的代码是:
测试DIV与OCX控件:
<div style="position: absolute; left: 120; top: 450; width: 400px; height: 200px; background: red; z-index: 7"> <object classid="CLSID:4B5BEE59-EDD2-4082-A9F7-D65E1CA20FA7"width="100" height="100"> </object> 是第6层 </div> <div style="position: absolute; left: 40; top: 500; width: 400px; height: 100px; background: Blue; z-index: 9"> 这是第7层 </div> 这是第7层 </div>
这种情况在EXTJS下边的测试情况如下图:
注:如果我们的控件是一个无窗口控件如flash控件,可以通过添加wmode属性来解决挡住DIV层这个问题,添加的代码如下:
<param name="wmode" value="opaque">
Html的iframe、frame可以挡住OCX控件——实际上iframe以及frame本身是一个有窗口元素,有窗口元素之间是可以互相遮挡的,而我们的Div又可以与iframe窗口互相遮挡。 现在的问题变成了如何先用iframe挡住OCX窗口再用DIV挡住iframe。
用iframe遮挡OCX控件
<div style="position: absolute; left: 120; top: 450; width: 400px; height: 200px; background: red; z-index: 7"> <object classid="CLSID:4B5BEE59-EDD2-4082-A9F7-D65E1CA20FA7"width="100" height="100"> </object> 是第6层 </div> <div style="position: absolute; left: 40; top: 500; width: 400px; height: 100px; background: Blue; z-index: 9"> <iframe id='iframei' src="javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; height:'100%';width:'100%'; z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';/"> </iframe>; 这是第7层 </div>
其中代码:
<iframe id='iframei' src="javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; height:'100%';width:'100%'; z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';/"></iframe>;”
就是创建一个与DIV等大的,透明的iframe框架。实现的效果如下图: