javascript - Hvordan kan jeg overvåke alle tilpassede hendelser som sendes ut i nettleseren?


Jeg ønsker å overvåke alle tilpassede hendelser som utløses i en nettleser. Enhver standard nettleser vil gjøre.

For å være klar, jeg vet at du kan legge til hendelseshåndterere for å se når "vanlige" hendelser utløses, men hvordan kan jeg pålitelig oppdage om et innebygd objekt eller jQuery-skript utløser en tilpasset hendelse?

Jeg kunne omstrukturere nettleserens kildekode for å koble til hendelsesløkken, men det virker temmelig ekstremt.

Svar #1

Jeg vil gjerne overvåke alle tilpassede hendelser som utløses i en nettleser.

Jeg tror ikke du kan det. DOM-hendelsesmodellen fungerer ved å sette lyttere for spesifikke hendelsestyper, så hvis du ikke kjenner typen av hendelsen, kan du ikke lytte etter den. Det finnes ingen måte å lytte etter alle hendelser, f.eks. finnes det ingen addEventListener('*',...).

I tillegg vet du ikke hvordan tilpassede hendelser kalles. De kan hende ikke sender en hendelse inn i DOM-en (f.eks. implementerer noen biblioteker sine egne systemer for registrering og håndtering av hendelser), så det finnes ingen generell måte å vite når hendelseslytter blir kalt, selv om du kan spore utsendelsen av hendelsen.

Noen biblioteker simulerer også hendelsesbobling, men igjen, med mindre du vet typen av hendelsen, kan du ikke lytte etter den.

Du kunne imidlertid implementere ditt eget hendelseshåndteringssystem og implementere en funksjon for å lytte til alle hendelser som lyttere er satt for, eller hendelser som sendes ut ved bruk av systemet ditt.