确定是否或者是否有一个函数附加到DOM内的元素

时间:2015-03-03 21:26:28

标签: javascript dom browser event-listener

我有一个问题,我们如何能够找出哪些元素在DOM上的现有元素中通过事件管理器'具有附加功能。我知道这根本不容易,我知道我可以使用Visual Event进行检查。 但是,我想知道浏览器如何更有趣,Visual Event如何检测到它?

我们假设我们要加载一个网页并从DOM中提取所有可点击的元素。我们怎么可能确定某些现有元素不会改变DOM的状态?

例如,如果我们对这些元素一无所知,我们就需要尝试点击P标签,因为可能会附加一些功能。但是,如果我们可以确定这个特定元素在点击之后是否会做任何事情,那么如果它不会做任何事情,我们就可以忽略它。

我们可以通过直接的方式做一些视觉事件正在做的事情吗?

1 个答案:

答案 0 :(得分:2)

没有支持此功能的内置功能。

我所知道的最好的方法是使用您自己的方法覆盖addEventListener上的Element.prototype方法,该方法记录DOM节点上事件侦听器的添加/删除。然后,您可以公开一个函数来枚举它们。

此修改当然需要在应用程序中的相关事件监听器活动之前运行。

请参阅How to find event listeners on a DOM node when debugging or from the JavaScript code?

请注意,Chrome已通过getEventListeners和开发工具中的专用用户界面支持此功能。