问题描述:公司合作的一个酒店预订网站需要在页面上投广告,但对方给了一 个flash文件,要求链接到其首页。直接在html的flash object前面加上<a href=...>,发现链接是点不动的。
解决过程:
开发人员没有 意识到这个问题,写出的问题代码如下:
1<a href="http://www.youiyou.net">
2 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/ swflash.cab#version=6,0,29,0" width="468" height="60">
3 <param name="movie" value="**.swf">
4 <param name="quality" value="high">
5 <embed src="*.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"></embed>
6 </object>
7</a>
鼠标放上去是没有任何效果的,原因是默认情况下 flash会被放到最高层,可能有朋友也碰到过下拉菜单被flash挡住的情况,也属 于这个情况。
网上找到的解决方案是用一个透明的大button包在flash的 最外层,或是用一个层盖住flash,然后定义button的onclick事件,但这种方式在 firefox下工作不正常。
同时用户最关心的seo作用消失了,因为这不是一 个正常的链接,是用javascript实现跳转的。
1<button style="width:468;height:60;background:transparent;border:0;padding :0;cursor:hand" onclick="window.location.href='http://www.youiyou.net/'&qu ot;>
2 <object classid="clsid:D27CDB6E-AE6D- 11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/ swflash.cab#version=6,0,29,0" width="468" height="60">
3 <param name="movie" value="**.swf">
4 <param name="quality" value="high">
5 <embed src="*.swf" wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"></embed>
6 <param name="wmode" value="transparent">
7 </object>
8</button>
要想具有<a href...>的所有原生特性,最完美的方法应该就是用一个透明的<a href=...>链接盖住flash,最终我们采用了以下的代码,用一张大透明图链接 盖住flash。
将flash放到了一个zindex为-1的层中,同时设置了wmode属 性(代码中的 wmode="transparent" 和<param name="wmode" value="transparent">分别在firefox和 ie下起作用)。
masker层是用来挡住flash所在层的,margin-top用到定 位。blank.gif是一个透明的图片。效果如下所示
title,鼠标手形均正常
1<div style="z-index:- 1">
2 <object classid="clsid:D27CDB6E- AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/ swflash.cab#version=6,0,29,0" width="468" height="60">
3 <param name="movie" value="**.swf">
4 <param name="quality" value="high">
5 <embed src="*.swf" wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"></embed>
6 <param name="wmode" value="transparent">
7 </object>
8</div>
9<div id="masker" style="cursor: hand; margin-top:-60px; width:468px; height:60px; z-index:1; visibility: visible;"><a href="http:www.youiyou.net"><img src="blank.gif" width="468" height="60" border="0" /></a></div></div>
10
文章来源:http://www.cnblogs.com/dbgeng/