JS是否有一种方法可以检查事件是否存在?

7

我正在尝试检测浏览器是否支持特定的Webkit事件'webkitAnimationEnd',为此我想检查该事件是否存在。但是我似乎无法弄清楚如何检查。有人有线索吗?


你的问题是关于这个特定事件,还是一般性的问题? - Phrogz
2个回答

6

+1 看起来不错,尽管从技术上讲,事件处理程序作为属性的存在并不意味着浏览器会触发该事件。(浏览器可能会公开该属性但具有错误的实现,或者您可能很容易地在没有事件处理程序作为属性的情况下实现事件。) - Phrogz
我假设,如果通过这种方式事件存在,则浏览器将支持并在适当时触发它。 - Mark
1
嗯,在Chrome 18或Safari 5中,这不会评估为“true”。可能存在问题,需要深入挖掘。 - Matt Ball
我无论如何都在检查这个对象,至少在Safari中它是有效的。 - Mark
1
@Mark 很有趣。使用的 Safari 版本是哪个?该元素是否设置了 CSS3 动画规则? - Matt Ball
嗯,奇怪了,现在它不工作了,我以为它会的。很抱歉,我也会进一步调查这个问题。 - Mark

-3

“被支持”是什么意思?如果您的意思是“会在特定情况下被浏览器取消”,那么您需要简单地通过脚本重新创建这些情况,并查看是否触发了事件;如果事件从未被处理,则可以使用超时处理程序以否定的方式响应。

通过测试功能来检测它们,而不是通过任何其他方式。


我怀疑他想要一个运行时检查,以便可以为不支持该事件的客户端执行不同的代码路径。 - Matt
@Matt 我也这么怀疑,但这并不与我的答案相矛盾。你可以轻松地按程序创建所需的元素/样式/等,注册事件处理程序和“超时”处理程序,并确定是否调用了事件处理程序。 - Phrogz
啊,我明白了。我以为你在建议事先在每个浏览器中进行测试。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接