Как я могу отслеживать все пользовательские события, генерируемые в браузере? - PullRequest
3 голосов
/ 13 мая 2011

Я хотел бы отслеживать все пользовательские события, запускаемые в веб-браузере. Подойдет любой стандартный браузер.

Чтобы было ясно, я знаю, что вы можете прикрепить обработчики событий, чтобы видеть, когда запускаются "обычные" события, но как я могу надежно определить, запускает ли встроенный объект или сценарий jQuery пользовательское событие?

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

1 Ответ

4 голосов
/ 13 мая 2011

Я бы хотел отслеживать все пользовательские события, запускаемые в веб-браузере.

Не думаю, что вы можете.Модель событий DOM работает путем установки прослушивателей для определенных типов событий, поэтому, если вы не знаете тип события, вы не сможете его прослушать.Невозможно прослушать все события, например, нет addEventListener('*',...).

Кроме того, вы не знаете, как вызываются пользовательские события.Они могут не отправлять событие в DOM (например, некоторые библиотеки реализуют свои собственные системы регистрации и обработки событий), поэтому нет общего способа узнать, когда вызываются прослушиватели событий, даже если вы можете отслеживать отправку события.

Некоторые библиотеки также имитируют всплытие событий, но, опять же, если вы не знаете тип события, вы не можете его прослушать.

Однако вы можете внедрить собственную систему управления событиями и функцию для прослушивания всех событий, для которых установлены прослушиватели, или событий, отправляемых с помощью вашей системы.

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