3

我正在和我的一位同事讨论这个问题。他创建了一段代码,在要加载闪存的对象周围放置一个 a-href。当我看到这个时,我差点哭出来并告诉他改用clickTag。

他告诉我它适用于 a-href。我检查了一下,代码在 ie6-8 和 firefox(都安装了 flashplayer 9 或 10)中运行良好。

因为我知道使用 a- href是一个非常糟糕的主意,所以我做了一些关于为什么不使用它的研究。

从那里我检查了标准(http://www.w3.org/TR/html401/struct/objects.html)并用谷歌搜索。

但我没有找到任何解释为什么它应该或不应该工作(我知道有时它不起作用)。

我们最终得到了一个同时使用两者的解决方案 - 周围的 a-href 并传递了 clickTag(仅供参考:我们不知道将显示哪种 swf,因为它来自 cms)。

为什么 a-href/flash 有时会起作用,有时却不起作用,做这样的事情的“标准”方式是什么?那么其他包含的对象(svg/movie/audio/..?)是否有一个标准来定义如何处理这些事情(如点击 Flash 或媒体播放器等嵌入式对象)(即停止传播点击事件)?

4

3 回答 3

4

没有针对它的标准,但它肯定会导致跨不同浏览器/平台组合的不可预测的结果。做一个简单的搜索并查看结果表明,有很多人在超链接 swf 时遇到了问题。

同时添加超链接和 clickTag 毫无意义,因为如果访问者拥有正确版本的 Flash,那么他们将获得 Flash 电影并且将使用 clickTag,因此您正在复制功能。你应该做的是将超链接作为后备,这样如果没有安装 Flash,那么人们仍然可以访问你的超链接。诸如SWFObject之类的库使这很容易做到。

于 2009-09-06T23:48:06.410 回答
2

我建议反对它。我的电脑运行的是 64 位 Linux,而 Flash 在 Firefox 中的行为有点滑稽。(一方面,它表现得好像 z-index 总是大于其他一切。)我没有测试过它,但我怀疑它不会表现得很好。底线是,这是您希望在所有平台上的所有浏览器上测试的那种事情,如果可能的话,最好避免它。

于 2009-09-03T14:59:09.877 回答
0

执行此操作的标准方法是使用该[onclick]属性传入 JS 表达式,或者click在捕获内联单击<embed>并且<object>在焦点转移到插件之前侦听鼠标事件。

我在想如果<object>and<embed>正确环绕插件内容,那么<a> 也应该正确环绕<object>and <embed>。我还想自然地相信,当<object><embed>捕获单击鼠标事件时,它也会正确地冒泡。但我不能 100% 确定这种行为是否可以被插件更改,导致<a>无法正确计算其显示或某些其他事件模型未在<a>.

于 2009-09-12T22:11:20.913 回答