Html swfobject:所有PC浏览器中闪存上的绝对位置链接
我有很多flash广告(与swfobject一起安装),上面有一个HTML链接。我使用的是wmode transparent,它在mac上的每个浏览器中都能正常工作,但在PC上的ie/chrome/ff(在win7上查看)链接落后于flash 我也尝试过wmode=opaque,但没有效果 以下是HTML:Html swfobject:所有PC浏览器中闪存上的绝对位置链接,html,css,flash,swfobject,Html,Css,Flash,Swfobject,我有很多flash广告(与swfobject一起安装),上面有一个HTML链接。我使用的是wmode transparent,它在mac上的每个浏览器中都能正常工作,但在PC上的ie/chrome/ff(在win7上查看)链接落后于flash 我也尝试过wmode=opaque,但没有效果 以下是HTML: <a href="$Link" class="overlay"></a> <div class="flashContainerSml"> <
<a href="$Link" class="overlay"></a>
<div class="flashContainerSml">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
<param name="movie" value="$Flash.URL" />
<param name="wmode" value="transparent" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
<param name="wmode" value="transparent" />
<!--<![endif]-->
<p>no flash</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
按钮/链接不在swf中是否有具体原因?像这样在swf上堆叠一个按钮是不好的做法(正如您所发现的)。如果我是你,我会重做swf,这样你就可以把按钮放在里面,而不是试图堆叠在上面 如果选项1(我的第一个答案)不起作用,请尝试以下解决方案:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
$(document).ready(function() {
swfobject.embedSWF("flash/movie.swf", "no-flash", "195", "120",
"9.0.0", "flash/expressInstall.swf", {}, {wmode:"transparent"}, {});
$('#div2').live('click',function() {
alert('triggered a click');
});
});
</script>
<style type="text/css">
#div {
position:relative;
}
#div2 {
position:absolute;
z-index: 1;
}
</style>
<div id="div">
<div id="div2" style="width:195px;height:120px;">
<object type="img/gif">
<img src="images/null.gif" width="100%" height="100%" />
</object>
</div>
<img id="no-flash" src="images/no-flash.gif" alt="" />
</div>
$(文档).ready(函数(){
swfobject.embeddeswf(“flash/movie.swf”、“无flash”、“195”、“120”,
“9.0.0”、“flash/expressInstall.swf”、{}、{wmode:“transparent”}、{});
$('#div2').live('click',function()){
警报(“触发点击”);
});
});
#div{
位置:相对位置;
}
#第二组{
位置:绝对位置;
z指数:1;
}
这次我把#div2 div放在了第一个div中,但是在被SWFObject替换的图像上面。在这个div中有一个对象标记,MIME类型设置为“img/gif”,然后很明显,该对象标记中只有一个图像。这张图片只是一张1×1的透明gif。因此,由于DOM顺序和z索引,具有图像的对象将位于其他对象之上。
这将在我需要的所有浏览器上成功触发警报。。FireFox、Safari、Chrome、Opera、InternetExplorer8、InternetExplorer7和InternetExplorer6。最终很简单。请注意链接中的透明gif
<a href="$Link" class="overlay"><img src="$ThemeDir/images/transparent.gif" /></a>
<div class="flashContainerSml">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
<param name="movie" value="$Flash.URL" />
<param name="wmode" value="opaque" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
<param name="wmode" value="opaque" />
<!--<![endif]-->
<p></p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
我同意这并不理想。广告是由客户上传到CMS的,他们的来源有时不会在广告中嵌入链接,所以我们给了他们在CMS中指定链接的能力。哦,好的,谢谢你多解释一下你的情况。我将发布另一个解决方案。你提到的透明gif激发了我的灵感。我决定尝试在空的“a”标签中添加一些文本,它起了作用,所以我将文本替换为透明的gif,它解决了这个问题
<a href="$Link" class="overlay"><img src="$ThemeDir/images/transparent.gif" /></a>
<div class="flashContainerSml">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
<param name="movie" value="$Flash.URL" />
<param name="wmode" value="opaque" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
<param name="wmode" value="opaque" />
<!--<![endif]-->
<p></p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>