Мониторинг всех событий JavaScript в консоли браузера
можно ли прослушивать все события javascript?
Я пытаюсь угадать, есть ли событие, вызванное после того, как DOM изменен запросом AJAX.
2 ответа:
С firebug или веб-инспектор можно использовать
monitorEvents
:monitorEvents(myDomElem);
это печатает все события, испускаемые
myDomElem
в консоли. ИспользуйтеunmonitorEvents
чтобы остановить мониторинг событий.если вы заинтересованы в получении событий после того, как DOM был обработан, взгляните на Событий Мутации.
Edit:
насколько я знаю, нет простого способа перехватить все
onreadystatechange
событий из всех XMLHttpRequest. Единственное решение, которое я могу придумать, - это переопределить собственный объект XMLHttpRequest с вашей собственной реализацией. Например:(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; })();
Излишне говорить, что это очень хаки и вообще неразумно.
чтобы Хрюша отступил от ответа Хави
monitorEvents(myDomElem)
, Если вы хотите все, кроме событий мыши, вы можете ввестиunmonitorEvents(myDomElem, 'mouse')
.http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents имеет хорошую статью в отношении использования событий chrome monitor.