我需要将wmode的任意flash对象从外部js文件更改为透明,以确保它们不会隐藏菜单而不使用
Jquery或类似的libs.
在FF中,我使用getElementsByTagName(“embed”)和set属性.似乎运作良好
具体来说,我在IE7中由swfObject库设置的对象有问题.
swfObject在iE7中创建以下代码:
<OBJECT id=mymovie height=400 width=134 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000> <PARAM NAME="_cx" VALUE="3545"> <PARAM NAME="_cy" VALUE="10583"> <PARAM NAME="FlashVars" VALUE=""> <PARAM NAME="Movie" VALUE="imgs/site/tower.swf"> <PARAM NAME="Src" VALUE="imgs/site/tower.swf"> <PARAM NAME="WMode" VALUE="Window"> <PARAM NAME="Play" VALUE="0"> <PARAM NAME="Loop" VALUE="-1"> <PARAM NAME="Quality" VALUE="High"> <PARAM NAME="SAlign" VALUE=""> <PARAM NAME="Menu" VALUE="-1"> <PARAM NAME="Base" VALUE=""> <PARAM NAME="AllowScriptAccess" VALUE=""> <PARAM NAME="Scale" VALUE="ShowAll"> <PARAM NAME="DeviceFont" VALUE="0"> <PARAM NAME="EmbedMovie" VALUE="0"> <PARAM NAME="BGColor" VALUE="FFFFFF"> <PARAM NAME="SWRemote" VALUE=""> <PARAM NAME="MovieData" VALUE=""> <PARAM NAME="SeamlessTabbing" VALUE="1"> <PARAM NAME="Profile" VALUE="0"> <PARAM NAME="ProfileAddress" VALUE=""> <PARAM NAME="ProfilePort" VALUE="0"> <PARAM NAME="AllowNetworking" VALUE="all"> <PARAM NAME="AllowFullScreen" VALUE="false"> </OBJECT>
我尝试了将wmode设置为透明的一切可能方式,使Flash不会隐藏浮动对象,而不会成功,包括但不限于:
>搜索OBJECT并将其PARAM wmode更改为透明.
>设置Object的属性(wmode = transparent)
>调用对象的SetValue函数
没有似乎工作.虽然wmode似乎改变了Flash仍然隐藏其他具有较高z-index的对象.我在这里缺少什么?
解决方法
我已经成功了这个小技巧:
$("embed").attr("wmode","opaque").wrap('<div>');
它有效地重绘Flash对象,为我工作.