Supongamos que tengo un enlace en mi página:
<a href="#" id="foo">Click Here</a>
No sé nada más, pero cuando hago clic en el enlace, alert("bar")
aparece un. Así que sé que en algún lugar se está vinculando algún código #foo
.
¿Cómo puedo encontrar el código que vincula el alert("bar")
evento click? Estoy buscando una solución con Chrome.
Ps .: El ejemplo es ficticio, por lo que no estoy buscando una solución como: "Usar XXXXXX y buscar en todo el proyecto" alert (\ "bar \") ". Quiero una solución de depuración / rastreo real.
{ }
símbolo en la esquina inferior izquierda cuando vea js. Magia.También puede usar el inspector de Chrome para buscar eventos adjuntos de otra manera, de la siguiente manera:
Esto lo llevará a donde se definió el controlador, como se demuestra en la siguiente imagen, y Paul Irish lo explicó aquí: https://groups.google.com/forum/#!topic/google-chrome-developer-tools/NTcIS15uigA
fuente
Pruébelo con la extensión jQuery Audit ( https://chrome.google.com/webstore/detail/jquery-audit/dhhnpbajdcgdmbbcoakfhmfgmemlncjg ), después de la instalación, siga estos pasos:
fuente
(Último a partir de 2020) Para la versión Chrome versión 83.0.4103.61 :
Seleccione el elemento que desea inspeccionar
Elija la pestaña Oyentes de eventos
Asegúrese de verificar los escuchas de Framework para mostrar el archivo javascript real en lugar de la función jquery.
fuente
Editar : en lugar de mi propia respuesta, esta es bastante excelente: Cómo depurar enlaces de eventos JavaScript / jQuery con Firebug (o herramienta similar)
Las herramientas para desarrolladores de Google Chromes tienen una función de búsqueda integrada en la sección de secuencias de comandos
Si no está familiarizado con esta herramienta: (por si acaso)
Hacer una búsqueda rápida del #ID debería llevarlo finalmente a la función de enlace.
Ej: buscar
#foo
te llevaría afuente
Actualización 2018: puede ser útil para futuros lectores:
No estoy seguro de cuándo se introdujo originalmente en Chrome. Pero otra forma (fácil) de hacerlo ahora en Chrome es a través de los comandos de la consola.
Por ejemplo: ( en el tipo de consola de Chrome )
Mientras que $ 0 es el elemento seleccionado en el DOM.
https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#0_-_4
fuente
findEventHandlers es un complemento de jquery, el código sin procesar está aquí: https://raw.githubusercontent.com/ruidfigueiredo/findHandlersJS/master/findEventHandlers.js
Pasos
Pegue el código sin procesar directamente en la consola de Chrome (nota: debe tener jquery cargado ya)
Utilice la siguiente llamada de función:
findEventHandlers(eventType, selector);
para encontrar el controlador eventType del elemento especificado del selector correspondiente.
Ejemplo :
Luego, si corresponde, el controlador de eventos disponible se mostrará a continuación, debe expandirse para encontrar el controlador, haga clic con el botón derecho en la función y seleccione
show function definition
Ver: https://blinkingcaret.wordpress.com/2014/01/17/quickly-finding-and-debugging-jquery-event-handlers/
fuente
Para la versión de Chrome 52.0.2743.116:
En las Herramientas para desarrolladores de Chrome, abra el panel 'Buscar' presionando
Ctrl
+Shift
+F
.Escriba el nombre del elemento que está tratando de encontrar.
Los resultados de los elementos enlazados deben aparecer en el panel e indicar el archivo en el que se encuentran.
fuente