枚举附加到文档的HTML对象的所有事件
Enumerate all events attached to HTML objects of a document
经过大量的谷歌搜索,我在这里询问是否可以枚举DOM中HTML元素附带的所有事件。
例如:假设我的文档是
<body onscroll=docScrolled()>
<span onmouseover=doSomethingElse()> Span is here </span>
<div id="container">
<script>
$("#container").bind("click", doSomething);
</body>
在我的文档被加载并执行了所有javascript代码之后,我想在单击时提供一个按钮,显示所有HTML元素和附加到它们的事件。
Ouptut
<body onscroll=docScrolled()> ------ onscroll
<span onmouseover=doSomethingElse()> Span is here </span> -----onmouseover
<div id="container"> ------onclick
所以,最终的问题是如何枚举所有HTML元素,并找出附加到它们的事件。
这里有一个页面可能会有所帮助。
此外,这段代码在你搜索的行中做了一些事情:
// List bound events:
console.dir( $('#elem').data('events') );
// Log ALL handlers for ALL events:
$.each($('#elem').data('events'), function(i, event){
$.each(event, function(i, handler){
console.log( handler.toString() );
});
});
更新:https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference显示了DOM元素的事件列表。您应该创建一个函数来检查是否为任何事件分配了函数。
它可能类似于:
var events = ["onchange","onkeydown",...]
function hasEventsAssigned(elem) {
for (var i = events.length; i > 0; i--) {
if (elem[events.i]) {
/* do something */
}
}
}
相关文章:
- 将事件附加到对象/数组
- 在创建对象后附加一个jquery事件
- JavaScript:点击事件中对象的值
- 如何从已注册的事件发送 JavaScript 对象
- jsplumb中的Click事件处理程序丢失“;这个“;对象
- 枚举附加到文档的HTML对象的所有事件
- 通过单击事件识别画布上的对象
- jQuery UI draggable:绑定到mousemove事件中的对象
- 如果在对象上触发了dispatchEvent,我如何才能找到如何侦听它以及在哪里调度事件
- 如何从jQuery的事件对象中检索属性
- 如何在动态创建元素的内联onclick事件中传递对象
- 如何在JavaScript中基于事件对象获取文件名
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- YES或NO表示对象事件中的分号
- Javascript关闭DOM对象事件和事件冒泡
- 存储对象事件的内容
- 将 JS 函数附加到动态创建的对象事件
- 未捕获的类型错误:对象 #<事件> 没有方法“拆分”
- javascript中的ONDELETE对象事件
- 嵌套对象事件