Мониторинг всех событий 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.