Ist es möglich, alle Javascript-Ereignisse zu hören?Überwachen Sie alle JavaScript-Ereignisse in der Browser-Konsole
Ich versuche zu erraten, wenn ein Ereignis ausgelöst wird, nachdem das DOM von einer AJAX-Anfrage geändert wurde.
Ist es möglich, alle Javascript-Ereignisse zu hören?Überwachen Sie alle JavaScript-Ereignisse in der Browser-Konsole
Ich versuche zu erraten, wenn ein Ereignis ausgelöst wird, nachdem das DOM von einer AJAX-Anfrage geändert wurde.
Mit firebug oder web inspector können Sie monitorEvents
verwenden:
monitorEvents(myDomElem);
Dies druckt alle von myDomElem
an die Konsole emittiert Ereignisse. Verwenden Sie unmonitorEvents
, um die Überwachung von Ereignissen zu stoppen.
Wenn Sie daran interessiert sind, Ereignisse zu erhalten, nachdem das DOM manipuliert wurde, werfen Sie einen Blick auf Mutation Events.
bearbeiten:
Soweit ich weiß, gibt es keine einfache Möglichkeit, alle onreadystatechange
Ereignisse von allen XMLHttpRequest abzufangen. Die einzige Problemumgehung, die ich mir vorstellen kann, besteht darin, das native XMLHttpRequest-Objekt mit Ihrer eigenen Implementierung zu überschreiben. Zum Beispiel:
(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;
})();
Unnötig zu sagen, das ist extrem hacky und in der Regel schlecht beraten.
Ja, http://api.jquery.com/ajaxSuccess/ hakt nur jQuery XHR-Wrapper, so dass kein echtes JS-Ereignis erfasst wird. Allerdings sollte dieser Hack den Trick machen :) – knoopx
"allgemein schlecht beraten" - warum? –
Update: 'monitorEvents' funktioniert in Chrome genauso gut. –
Um von Xavis Antwort auf monitorEvents(myDomElem)
zu sparen, könnten Sie unmonitorEvents(myDomElem, 'mouse')
eingeben, wenn Sie alles außer den Mausereignissen möchten.
http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents hat einen guten Artikel in Bezug auf die Verwendung von Chrome-Monitor-Ereignisse.
Schau unter Mutation hier: http://en.wikipedia.org/wiki/DOM_events#Common.2FW3C_events sind dies die Ereignisse, die Sie suchen? –
Ich bin auf der Suche nach einer Möglichkeit, onreadystatechange Ereignis auf alle XMLHttpRequest abzufangen – knoopx