环境: Windows 7中, Internet Explorer 8中, 闪存的ActiveX 10.1.53.64, 的wmode =透明事件不冒泡
只是写了一个小的测试页面,你可以在加载IE和Firefox或任何其他浏览器。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Event bubbling test</title>
</head>
<body onclick="alert('body');" style="margin:0;border-width:0;padding:0;background-color:#00FF00;">
<div onclick="alert('div');" style="margin:0;border-width:0;padding:0;background-color:#FF0000;">
<span onclick="alert('span');" style="margin:0;border-width:0;padding:0;background-color:#0000FF;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="159" height="91" id="flashAbout_small" align="absmiddle">
<param name="movie" value="http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf"/>
<param name="quality" value="high"/>
<param name="bgcolor" value="#FFFFFF"/>
<param name="wmode" value="transparent"/>
<embed src="http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf" quality="high" bgcolor="#FFFFFF" width="159" height="91" wmode="transparent" name="flashAbout_small" align="absmiddle" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"/>
</object>
</span>
</div>
</body>
</html>
所以点击任何颜色的形状应该产生警报(除了绿色的在IE中,不知道为什么,但我希望这是题外话,而不是与我的问题)。
单击Firefox中的Flash容器将工作非常好。您应该按照以下顺序获得警告框:span,div和body。 Flash将事件引发到HTML。但是这在IE中没有发生。
那么为什么在IE浏览器中的Flash不会将事件冒泡到HTML?
编辑:正如Andy E所说,这种行为也可以在谷歌浏览器中看到,据我所知,它并未使用ActiveX将Flash电影嵌入到页面中。
感谢您指出的是,插件在谷歌浏览器行为相同的方式。 – 2010-07-23 09:07:35