您如何以编程方式确定HTML对象可以侦听哪些事件?

时间:2011-10-05 20:47:42

标签: javascript dom safari webkit gecko

我一直在查看developer.mozilla.org和Apple开发文档中的文档,但我无法找到解释您是否可以以编程方式确定特定HTML标记是否支持给定eventListener的文档。

就像我知道<script>标签不支持点击监听器一样,因为没有什么可点击的,但我怎么知道呢?

或者除此之外,是否有一个简单的参考,每个标签支持哪些事件?

2 个答案:

答案 0 :(得分:5)

根据Perfection Kills

,在一些边缘情况之外,是的,你可以
  

诀窍在于,许多现代浏览器将与事件名称对应的属性报告为存在于元素中。

基本上,代码如下所示:

'onclick' in document.documentElement; // true
'onclick2' in document.documentElement; // false

他使用它来检测各种浏览器中的事件支持,但它也可用于检测元素是否支持事件:

  

必须检查可能实际发起该事件的元素。

所以你也得到这样的结果:

'onreset' in document.documentElement; // false
'onreset' in document.createElement('input'); // true

答案 1 :(得分:0)

我告诉你阅读this

...你必须考虑的最好的事情是事件只适用于DOM对象。然后DOM中的所有对象都可以有事件(但是读取列表)。