嵌入 Flash 对象不会捕获 Internet Explorer 上的点击(尽管是 wmode)

发布于 2024-11-26 07:38:41 字数 1287 浏览 1 评论 0原文

我想用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄暮涼年 2024-12-03 07:38:41

修改 div,使其具有背景颜色设置并且实际上使用不透明度透明。单击将在 div 元素内进行。在 ie、chrome、ff 中运行良好。

background-color: white;
opacity: 0;
-moz-opacity: 0;
filter: alpha(opacity = 0);

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.

background-color: white;
opacity: 0;
-moz-opacity: 0;
filter: alpha(opacity = 0);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文