嵌入 Flash 对象不会捕获 Internet Explorer 上的点击(尽管是 wmode)
我想用 javascript 捕获页面上嵌入 flash 对象的点击。我使用了 wmode="opaque" (也尝试过透明)并设置了较低的 z-index。我尝试捕获 div、对象元素和嵌入元素上的点击。
在 FF (5) 上,这三个都有效。在 IE(7 和 8)上,它们都不起作用。
这是我的代码(我删除了 Flash 的一些属性,例如 type 或 classid):
<div onclick="javascript:alert('div.click');" style="z-index:10;">
<object onclick="javascript:alert('object.click');" style="z-index:1;">
<param value="flash.swf" name="movie">
<param value="opaque" name="wmode">
<embed onclick="javascript:alert('embed.click');" wmode="opaque" src="flash.swf">
</object>
</div>
第二个解决方案
A 还尝试将 div 放在带有“top:-100px;”的对象元素之后位于闪光灯顶部。在 IE 中,如果 div 是纯色(如 bg-color:red),则它可以工作,但如果它具有透明背景,则不行:
<object onclick="javascript:alert('object.click');" style="z-index:1;">
<param value="flash.swf" name="movie">
<param value="opaque" name="wmode">
<embed onclick="javascript:alert('embed.click');" wmode="opaque" src="flash.swf">
</object>
<div onclick="javascript:alert('div.click');" style="height:100px; top:-100px; position:relative; background-color:Transparent; z-index:10;">
</div>
- 我有机会使其与 Internet Explorer 一起工作吗?谢谢。
I would want to catch click with javascript on a embed flash object on my page. I used wmode="opaque" (tried transparent too) and put a low z-index. I tried catching click on a div, on the object element and on the embed element.
On FF (5), all three of them work. On IE (7 & 8), none of them work.
Here's my code (I removed some attribute for flash like type or classid) :
<div onclick="javascript:alert('div.click');" style="z-index:10;">
<object onclick="javascript:alert('object.click');" style="z-index:1;">
<param value="flash.swf" name="movie">
<param value="opaque" name="wmode">
<embed onclick="javascript:alert('embed.click');" wmode="opaque" src="flash.swf">
</object>
</div>
Second solution
A also tried to put the div after the object element with "top:-100px;" to be on top on the flash. In IE, it works if the div is in plain color (like bg-color:red) but not if it has a transparent background :
<object onclick="javascript:alert('object.click');" style="z-index:1;">
<param value="flash.swf" name="movie">
<param value="opaque" name="wmode">
<embed onclick="javascript:alert('embed.click');" wmode="opaque" src="flash.swf">
</object>
<div onclick="javascript:alert('div.click');" style="height:100px; top:-100px; position:relative; background-color:Transparent; z-index:10;">
</div>
- Do I have any chance to make it work with Internet Explorer ? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
修改 div,使其具有背景颜色设置并且实际上使用不透明度透明。单击将在 div 元素内进行。在 ie、chrome、ff 中运行良好。
Modify div so it has back color set and transparent in fact using opacity. The click will be cought inside div element. Works well in ie, chrome, ff.