javascript - Hur kan jag övervaka alla anpassade händelser som avges i webbläsaren?
Jag vill övervaka alla anpassade händelser som utlöses i en webbläsare. Vilken standardwebbläsare som helst fungerar.
För att vara tydlig, jag vet att du kan fästa händelsehanterare för att se när "vanliga" händelser utlöses, men hur kan jag pålitligt upptäcka om ett inbäddat objekt eller ett jQuery-script utlöser en anpassad händelse?
Jag skulle kunna refaktorera webbläsarens källkod för att hooka händelseloppet, men det verkar ganska extremt.
Svar #1
Jag skulle vilja övervaka alla anpassade händelser som utlöses i en webbläsare.
Jag tror inte att du kan. DOM-händelsemodellen fungerar genom att sätta lyssnare för specifika händelsetyper, så om du inte vet typen av händelsen kan du inte lyssna på den. Det finns inget sätt att lyssna på alla händelser, t.ex. finns det ingen addEventListener('*',...).
Dessutom vet du inte hur anpassade händelser kallas. De kanske inte skickar ett evenemang till DOM:en (t.ex. vissa bibliotek implementerar sina egna system för registrering och hantering av händelser) så det finns inget generellt sätt att veta när händelselyssnare blir kallade, även om du kan spåra utskickandet av evenemanget.
Vissa bibliotek simulerar också händelsebubbling, men återigen, om du inte vet typen av händelse kan du inte lyssna på den.
Du skulle dock kunna implementera ditt eget evenemangshanteringssystem och implementera en funktion för att lyssna på alla händelser för vilka lyssnare är inställda eller händelser som skickas med ditt system.