如何处理网页中的所有事件

问题描述:

我希望得到关于网页中发生的所有事件的通知。如何处理网页中的所有事件

对于每一个单一的事件我使用的是这样的:

if(document.addEventListener){ 
    document.addEventListener('click', function(e) { something(e) } , true); 
}else{ 
    if(document.attachEvent){ 
     document.attachEvent('onclick', function(e) { something(e) }); 
    } 
} 

有一个简单的跨浏览器的方式来得到通知所有的网页,而不是听分开每个事件的事件(不使用jQuery的)?

+0

没有元,监听,我知道的所有事件。 – Glenn 2009-08-30 11:43:25

尝试调用作为参数传递另一个函数里面的函数调用的所有通知操作

function addEvent(ev,fun){ 
    var hand=function(e){ 
    alert(ev+" event"); //Or other notify operations 
    fun(); 
    } 
    if(document.addEventListener){ 
     document.addEventListener(ev, hand, true); 
    }else{ 
     if(document.attachEvent){ 
      document.attachEvent(ev, hand); 
     } 
    } 
} 

全部事件?我真的怀疑你是否考虑过事件冒泡以及onmousemove会产生多少噪音。

坚持使用离散白名单绑定到您真正关心的事项。

+0

我想要得到所有的事件。我会自己处理这些问题。 – Niyaz 2009-08-30 10:52:44

编写一个JavaScript应用程序,用于搜索HTML文档的标签以查找事件属性。然后,您可以以任何您想要的方式分析事件。输出可以写入当前页面或使用xmlHttpRequest对象写入另一个文档。

+0

基本上这是解决方案。但是你这样做。走DOM树,并为每个元素添加一个捕获函数给每个事件。您的捕获函数可能想要将现有的处理程序作为输入,以便现有的侦听程序也可以被调用。 – Glenn 2009-08-30 11:41:58