Czy można słuchać wszystkich zdarzeń javascript?Monitorowanie wszystkich zdarzeń JavaScript w konsoli przeglądarki
Próbuję zgadnąć, czy zdarzenie wywołane po modyfikacji DOM przez żądanie AJAX.
Czy można słuchać wszystkich zdarzeń javascript?Monitorowanie wszystkich zdarzeń JavaScript w konsoli przeglądarki
Próbuję zgadnąć, czy zdarzenie wywołane po modyfikacji DOM przez żądanie AJAX.
Z firebug lub web inspector można użyć monitorEvents
:
monitorEvents(myDomElem);
Powoduje wydrukowanie wszystkich zdarzeń emitowanych przez myDomElem
do konsoli. Użyj opcji unmonitorEvents
, aby zatrzymać monitorowanie zdarzeń.
Jeśli chcesz uzyskać informacje o wydarzeniach po manipulowaniu DOM, spójrz na numer Mutation Events.
Edit:
O ile mi wiadomo, nie ma łatwego sposobu, aby przechwytywać wszystkie onreadystatechange
wydarzenia ze wszystkich XMLHttpRequest. Jedynym sposobem obejścia tego problemu jest zastąpienie natywnego obiektu XMLHttpRequest własną implementacją. Na przykład:
(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;
})();
Nie trzeba dodawać, że jest to bardzo hacky i ogólnie nierozważne.
tak, http://api.jquery.com/ajaxSuccess/ po prostu przechwytuje opakowanie XHR jQuery, więc żadne prawdziwe zdarzenie JS nie jest przechwytywane. Jednak ten hack powinien załatwić sprawę :) – knoopx
"ogólnie nieuprawniony" - dlaczego? –
Aktualizacja: 'monitorEvents' działa równie dobrze w Chrome. –
Aby odstroić świnkę od odpowiedzi Xaviego na monitorEvents(myDomElem)
, jeśli chcesz mieć wszystko oprócz zdarzeń myszy, możesz wpisać unmonitorEvents(myDomElem, 'mouse')
.
http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents ma dobry artykuł w odniesieniu do korzystania z wydarzeń chrome monitor.
Sprawdź pod Mutacja tutaj: http://en.wikipedia.org/wiki/DOM_events#Common.2FW3C_events są te wydarzenia, które Cię interesują? –
Szukam sposobu na przechwycenie zdarzenia onreadystatechange na wszystkich XMLHttpRequest – knoopx