Vamos supor que eu tenha um link na minha página:
<a href="#" id="foo">Click Here</a>
Não sei mais nada, mas quando clico no link, um alert("bar")
é exibido. Então eu sei que em algum lugar, algum código está sendo vinculado #foo
.
Como posso encontrar o código que está vinculando o alert("bar")
evento click? Estou procurando uma solução com o Chrome.
Obs .: O exemplo é fictício, portanto, não estou procurando uma solução como: "Use XXXXXX e pesquise em todo o projeto" alert (\ "bar \") "). Quero uma solução real de depuração / rastreamento.
{ }
símbolo no canto inferior esquerdo ao visualizar js. Magia.Você também pode usar o inspetor do Chrome para encontrar eventos anexados de outra maneira, da seguinte maneira:
Isso levará você ao local onde o manipulador foi definido, conforme demonstrado na imagem a seguir, e explicado por Paul Irish aqui: https://groups.google.com/forum/#!topic/google-chrome-developer-tools/NTcIS15uigA
fonte
Experimente a extensão do jQuery Audit ( https://chrome.google.com/webstore/detail/jquery-audit/dhhnpbajdcgdmbbcoakfhmfgmemlncjg ), depois de instalar, siga estas etapas:
fonte
(Mais recente a partir de 2020) Para a versão Chrome Versão 83.0.4103.61 :
Selecione o elemento que você deseja inspecionar
Escolha a guia Event Listeners
Verifique os ouvintes do Framework para mostrar o arquivo javascript real em vez da função jquery.
fonte
Edit : em vez de minha própria resposta, esta é excelente: Como depurar ligações de eventos JavaScript / jQuery com Firebug (ou ferramenta similar)
As ferramentas de desenvolvedor do Google Chromes têm uma função de pesquisa incorporada na seção de scripts
Se você não estiver familiarizado com esta ferramenta: (apenas no caso)
Fazer uma pesquisa rápida pelo #ID deve levá-lo à função de ligação eventualmente.
Ex: pesquisar
#foo
levaria você parafonte
Atualização de 2018 - Pode ser útil para futuros leitores:
Não tenho certeza de quando isso foi originalmente introduzido no Chrome. Mas outra maneira (fácil) de fazer isso agora no Chrome é através de comandos do console.
Por exemplo: ( no tipo de console chrome )
Enquanto $ 0 é o elemento selecionado no DOM.
https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#0_-_4
fonte
findEventHandlers é um plugin jquery, o código bruto está aqui: https://raw.githubusercontent.com/ruidfigueiredo/findHandlersJS/master/findEventHandlers.js
Passos
Cole o código bruto diretamente no console do chrome (nota: o jquery já deve estar carregado)
Use a seguinte chamada de função:
findEventHandlers(eventType, selector);
para localizar o manipulador eventType do elemento especificado do seletor correspondente.
Exemplo :
Se houver, o manipulador de eventos disponível será exibido abaixo. Você precisa expandir para encontrar o manipulador, clique com o botão direito do mouse na função e selecione
show function definition
Veja: https://blinkingcaret.wordpress.com/2014/01/17/quickly-finding-and-debugging-jquery-event-handlers/
fonte
Para a versão 52.0.2743.116 do Chrome:
Nas Ferramentas de desenvolvedor do Chrome, abra o painel 'Pesquisar' pressionando
Ctrl
+Shift
+F
.Digite o nome do elemento que você está tentando encontrar.
Os resultados para elementos vinculados devem aparecer no painel e indicar o arquivo em que estão localizados.
fonte