遇到IE中(包括IE6+)弹窗广告要flash遮挡的问题,后来想到了经常使用的iframe方法(参见《解决IE6 select z-index无效,遮挡div的bug》),最终成功了flash遮挡DIV的bug,可是在IE中还出现了浮动的DIV变化位置后,flash出现div碎片的拖尾现象。继续寻找解决方案。最后终于找了原来flash有个参数wmode能够设置,因而代码变成了这样:html
<embed src=”s.swf” quality=”high” wmode=”Opaque” width=”150″ height=”240″></embed>浏览器
因而IE中Flash遮挡DIV的问题成功解决了,看图:spa
flash遮挡div问题的解决方案htm
wmode还有其余属性对象
window 模式get
默认状况下的显示模式,在这种模式下flash player有本身的窗口句柄,这就意味着flash影片是存在于Windows中的一个显示实例,而且是在浏览器核心显示窗口之上的,因此flash只是貌似显示在浏览器中,但这也是flash最快最有效率的渲染模式。因为他是独立于浏览器的HTML渲染表面,这就致使默认显示方式下flash老是会遮住位置与他重合的全部DHTML层。iframe
可是大多数苹果电脑浏览器会容许DHTML层显示在flash之上,但当flash影片播放时会出现比较诡异的现象,好比DHTML层像被flash刮掉一块同样显示异常。flash
Opaque 模式it
这是一种无窗口模式,在这种状况下flash player没有本身的窗口句柄,这就须要浏览器须要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其余元素同样在同一个页面上,所以你就可使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。io
Transparent 模式
透明模式,在这种模式下flash player会将stage的背景色alpha值将为0而且只会绘制stage上真实可见的对象,一样你也可使用z-index来控制flash影片的深度值,可是与Opaque模式不一样的是这样作会下降flash影片的回放效果,并且在9.0.115以前的flash player版本设置wmode=”opaque”或”transparent”会致使全屏模式失效。