关于WEB开发下面DIV层被OCX控件拦住问题

控件分为有窗口控件与无窗口控件,无窗口控件很好办,如flash控件,可以通过添加wmode属性来解决挡住DIV层这个问题,添加的代码如下:

 

解决无窗口控件挡住DIV:

 

1

<param  name="wmode" value="opaque">

 

这种情况在使用DIV的网页里的测试如下:

 

关于WEB开发下面DIV层被OCX控件拦住问题

 

测试的代码是:

 

测试DIV与OCX控件:

 

1

2

3

4

5

6

7

8

9

10

11

12

<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下边的测试情况如下图:

 

关于WEB开发下面DIV层被OCX控件拦住问题

 

注:如果我们的控件是一个无窗口控件如flash控件,可以通过添加wmode属性来解决挡住DIV层这个问题,添加的代码如下:

 

1

<param  name="wmode" value="opaque">

 

Html的iframe、frame可以挡住OCX控件——实际上iframe以及frame本身是一个有窗口元素,有窗口元素之间是可以互相遮挡的,而我们的Div又可以与iframe窗口互相遮挡。 现在的问题变成了如何先用iframe挡住OCX窗口再用DIV挡住iframe。

 

用iframe遮挡OCX控件

 

1

2

3

4

5

6

7

8

9

10

11

12

<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>

 

其中代码:

 

1

2

3

<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框架。实现的效果如下图:

 

关于WEB开发下面DIV层被OCX控件拦住问题