今天给一家网站做了个弹出咨询框效果,做完后发现在火狐浏览器(360浏览器)里面弹出的div层总是被页面上的flash层给遮盖住了,在IE浏览器下面倒是没有问题。上网搜了搜,找到了解决办法,现就如何解决DIV层被Flash遮盖问题(兼容IE和火狐浏览器)做一下分享。
对于IE浏览器下解决DIV层被Flash遮盖的问题可在页面加载flash的代码段中加入如下参数:
<param name="wmode" value="transparent" />
对于firefox浏览器下解决DIV层被Flash遮盖的问题需要按如下的方式加入相关参数:
<embed src="flash.swf" wmode="transparent" ... ></embed>
因此综上可以得出同时兼容IE和firefox浏览器的解决div层被flash遮盖的问题可按如下方式加载flash:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="990" height="90"> <param name="movie" value="" /> <param name="wmode" value="transparent" /> <param name="quality" value="high" /> <embed wmode="transparent" src="" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="990" height="90"></embed> </object>
关于object wmode属性的资料:
该属性为可选参数,允许使用 Internet Explorer 4.0 中的透明 Flash 内容、绝对定位和分层显示功能。此标记/属性仅在带有 Flash Player ActiveX 控件的 Windows 中有效。
"Window"在 Web 页上用影片自己的矩形窗口来播放应用程序。"Window"表明此 Flash 应用程序与 HTML 层没有任何交互,并且始终位于最顶层。
"Opaque" 使应用程序隐藏页面上位于它后面的所有内容。
"Transparent"使 HTML 页的背景可以透过应用程序的所有透明部分显示出来,并且可能会降低动画性能。
"Opaque windowless"和"Transparent windowless"都可与 HTML 层交互,从而允许 SWF 文件上方的层遮蔽应用程序。这两种选项之间的差异在于"Transparent"允许透明,因此,如果 SWF 文件的某一部分是透明的,则 SWF 文件下方的 HTML 层可以透过该部分显示出来,而"opaque"则不会显示。
如果忽略此属性,默认值为 Window。仅适用于 object。