Já olhei para estas questões:
- Como encontrar ouvintes de eventos em um nó DOM durante a depuração ou a partir do código JavaScript?
- posso examinar e modificar programaticamente os manipuladores de eventos Javascript em elementos html?
- Como depurar ligações de eventos JavaScript / jQuery com Firebug (ou ferramenta semelhante)
entretanto, nenhum deles responde como obter uma lista de ouvintes de evento anexados a um nó usando addEventListener
, sem modificar o addEventListener
protótipo antes que os ouvintes de evento sejam criados.
VisualEvent não exibe todos os ouvintes de eventos (específicos do iphone) e eu quero fazer isso (um pouco) programaticamente.
javascript
dom-events
Tyilo
fonte
fonte
Respostas:
Chrome DevTools, Safari Inspector e Firebug são compatíveis com getEventListeners (nó) .
fonte
Você não pode.
A única maneira de obter uma lista de todos os ouvintes de eventos anexados a um nó é interceptar a chamada de anexo do ouvinte.
DOM4 addEventListener
Diz
O que significa que um ouvinte de evento é adicionado à "lista de ouvintes de evento". Isso é tudo. Não há noção do que esta lista deve ser nem como você deve acessá-la.
fonte
Como não há uma maneira nativa de fazer isso, aqui está uma solução menos intrusiva que encontrei (não adicione nenhum método de protótipo 'antigo'):
fonte
Você pode obter todos os eventos jQuery usando $ ._ data ($ ('[selector]') [0], 'events'); mude [seletor] para o que você precisa.
Existe um plugin que reúne todos os eventos anexados por jQuery chamado eventsReport.
Também escrevo meu próprio plugin que faz isso com melhor formatação.
Mas de qualquer forma, parece que não podemos reunir eventos adicionados pelo método addEventListener. Pode ser que possamos encapsular a chamada addEventListener para armazenar eventos adicionados após nossa chamada.
Parece a melhor maneira de ver eventos adicionados a um elemento com ferramentas de desenvolvimento.
Mas você não verá eventos delegados lá. Então, precisamos do jQuery eventsReport.
ATUALIZAÇÃO: AGORA PODEMOS ver os eventos adicionados pelo método addEventListener VER A RESPOSTA CORRETA PARA ESTA PERGUNTA.
fonte
Não consigo encontrar uma maneira de fazer isso com o código, mas no estoque do Firefox 64, os eventos são listados ao lado de cada entidade HTML no Inspetor de Ferramentas do Desenvolvedor, conforme observado na página Examinar Ouvintes de Eventos do MDN e conforme demonstrado nesta imagem:
fonte