2009-08-30 11 views
0

Je souhaite recevoir des notifications sur tous les événements se produisant sur une page Web.Comment gérer tous les événements d'une page Web

Pour chaque événement unique, je me sers quelque chose comme ceci:

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

Est-il un moyen simple cross-navigateur pour être averti de tous les événements dans une page web au lieu d'écouter chaque événement séparément (sans utiliser jQuery)?

+0

Il n'y a pas de méta-auditeur pour tous les événements que je connais. – Glenn

Répondre

1

Essayez d'appeler la fonction passée comme argument dans une autre fonction qui appelle toutes les opérations notify

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); 
     } 
    } 
} 
1

Tous les événements? Je doute sérieusement que vous envisagiez de faire des bulles d'air et combien de bruit onmousemove va produire.

Stick avec une fixation discrète sur liste blanche à ce qui vous intéresse réellement.

+0

Je veux obtenir tous les événements. Je vais gérer ces problèmes par moi-même. – Niyaz

2

Ecrivez une application JavaScript qui recherche les balises d'un document HTML à la recherche des attributs de l'événement. Vous pouvez ensuite analyser les événements comme vous le souhaitez. La sortie peut être écrite sur la page en cours ou écrite dans un autre document à l'aide de l'objet xmlHttpRequest.

+0

Fondamentalement, c'est la solution. Cependant vous le faites. Parcourez l'arborescence DOM et, pour chaque élément, ajoutez une fonction de capture à chaque événement. Votre fonction de capture peut vouloir prendre le gestionnaire existant en entrée afin que les écouteurs existants puissent également être appelés. – Glenn

Questions connexes