Отслеживайте все события JavaScript в консоли браузера - PullRequest
53 голосов
/ 16 августа 2010

Возможно ли прослушать все события javascript?

Я пытаюсь угадать, есть ли событие, вызванное после изменения DOM по запросу AJAX.

Ответы [ 2 ]

96 голосов
/ 16 августа 2010

С firebug или веб-инспектором вы можете использовать monitorEvents:

monitorEvents(myDomElem);

Печатает все события, генерируемые myDomElem, на консоль. Используйте unmonitorEvents, чтобы остановить мониторинг событий.

Если вы заинтересованы в получении событий после манипулирования DOM, взгляните на События мутации .

Редактировать

Насколько я знаю, не существует простого способа перехватить все 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;
})();

Само собой разумеется, что это очень глупо и, как правило, опрометчиво.

10 голосов
/ 17 апреля 2015

Чтобы отбросить ответ Хави на monitorEvents(myDomElem), если вы хотите все, кроме событий мыши, вы можете ввести unmonitorEvents(myDomElem, 'mouse').

http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents есть хорошая статья в отношениииспользование событий монитора Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...