Est-il possible d'écouter tous les événements javascript?Surveiller tous les événements JavaScript dans la console du navigateur
J'essaie de deviner si un événement est déclenché après que le DOM a été modifié par une requête AJAX.
Est-il possible d'écouter tous les événements javascript?Surveiller tous les événements JavaScript dans la console du navigateur
J'essaie de deviner si un événement est déclenché après que le DOM a été modifié par une requête AJAX.
Avec firebug ou web inspector vous pouvez utiliser monitorEvents
:
monitorEvents(myDomElem);
Ce imprime tous les événements émis par myDomElem
à la console. Utilisez unmonitorEvents
pour arrêter la surveillance des événements.
Si vous souhaitez obtenir des événements après la manipulation du DOM, jetez un oeil à Mutation Events.
Modifier:
Pour autant que je sache, il n'y a pas moyen facile d'intercepter tous les événements de tous onreadystatechange
XMLHttpRequest. La seule solution que je puisse envisager est de remplacer l'objet XMLHttpRequest natif par votre propre implémentation. Par exemple:
(function() { // Overriding XMLHttpRequest
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener("readystatechange", function() {
console.log("an ajax request was made")
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
})();
Inutile de dire que c'est extrêmement hacky et généralement mal conseillé.
oui, http://api.jquery.com/ajaxSuccess/ ne fait que crocheter le wrapper XHR de jQuery, donc aucun vrai événement JS n'est capturé. Cependant, ce hack devrait faire l'affaire :) – knoopx
"généralement mal conseillé" - pourquoi? –
Mise à jour: 'monitorEvents' fonctionne parfaitement aussi bien dans Chrome. –
Pour réécrire la réponse de Xavi de monitorEvents(myDomElem)
, si vous vouliez tout sauf les événements de la souris, vous pouvez alors entrer unmonitorEvents(myDomElem, 'mouse')
.
http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents a un bon article en ce qui concerne l'utilisation des événements de moniteur de chrome.
Regardez sous Mutation ici: http://en.wikipedia.org/wiki/DOM_events#Common.2FW3C_events sont-ils les événements que vous recherchez? –
Je cherche un moyen d'intercepter l'événement onreadystatechange sur tous les XMLHttpRequest – knoopx